@shwfed/config 2.8.0 → 2.9.1
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 +65 -10
- package/dist/module.json +1 -1
- package/dist/preview/assets/{badge-BI1mdo92.js → badge-BFb-1pCT.js} +1 -1
- package/dist/preview/assets/config-0DneC44h.js +1 -0
- package/dist/preview/assets/{config-OrJljNWU.js → config-ByZ0313c.js} +1 -1
- package/dist/preview/assets/config-CBypmimA.js +1 -0
- package/dist/preview/assets/config-CRxO6DVD.js +1 -0
- package/dist/preview/assets/config-CgGwKTMB.js +1 -0
- package/dist/preview/assets/{config-DuzQXHvg.js → config-DFaQa_Ua.js} +1 -1
- package/dist/preview/assets/{config-XgVqueyq.js → config-DlA3bMzk.js} +1 -1
- package/dist/preview/assets/{config-DqUnpWZk.js → config-iysOo1dH.js} +1 -1
- package/dist/preview/assets/config-rr6HpsHl.js +1 -0
- package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-lEhYVEcN.js → definition.vue_vue_type_script_setup_true_lang-C1MSczMq.js} +1 -1
- package/dist/preview/assets/index-BlHAyQdm.css +1 -0
- package/dist/preview/assets/index-CLQQPdxj.js +1 -0
- package/dist/preview/assets/index-CpLuDJe9.js +688 -0
- package/dist/preview/assets/{index-BvLLQuQr.js → index-CuSwhbkD.js} +1 -1
- package/dist/preview/assets/{item-DMtXi_cx.js → item-iBF7XNGG.js} +1 -1
- package/dist/preview/assets/{runtime-wVZ1xP8L.js → runtime-BPK6zdoy.js} +1 -1
- package/dist/preview/assets/runtime-BmED451i.js +1 -0
- package/dist/preview/assets/{runtime-CjJBU_e1.js → runtime-CPiaq4_s.js} +1 -1
- package/dist/preview/assets/{runtime-CWqQzWuc.js → runtime-CY9TirG6.js} +1 -1
- package/dist/preview/assets/{runtime-CA58Mif7.js → runtime-D4WPJrz9.js} +1 -1
- package/dist/preview/assets/runtime-DrKKzpjq.js +1 -0
- package/dist/preview/assets/{runtime-DnXoWy2A.js → runtime-S7Afa8F4.js} +1 -1
- package/dist/preview/assets/{runtime-DeUmGsM_.js → runtime-Uz1zCLPO.js} +1 -1
- package/dist/preview/assets/{runtime-BUPuX-Gq.js → runtime-XjumEj6A.js} +1 -1
- package/dist/preview/index.html +2 -2
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/config.d.vue.ts +8 -0
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/config.vue +28 -0
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/config.vue.d.ts +8 -0
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/runtime.vue +17 -17
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/schema.d.ts +4 -0
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/schema.js +8 -0
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/config.d.vue.ts +8 -0
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/config.vue +25 -0
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/config.vue.d.ts +8 -0
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/runtime.vue +2 -7
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/schema.d.ts +4 -0
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/schema.js +8 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.d.vue.ts +16 -16
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue.d.ts +16 -16
- 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 +16 -16
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue.d.ts +16 -16
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.d.vue.ts +16 -16
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue.d.ts +16 -16
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/runtime.vue +13 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/schema.d.ts +1 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/schema.js +4 -1
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/runtime.vue +10 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/schema.d.ts +1 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/schema.js +4 -1
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue +20 -4
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +1 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/schema.js +4 -1
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue +17 -9
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/schema.d.ts +1 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/schema.js +4 -1
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/runtime.vue +25 -5
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/schema.d.ts +1 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/schema.js +4 -1
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/runtime.vue +18 -8
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/schema.d.ts +1 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/schema.js +4 -1
- package/dist/runtime/components/form/index.vue +11 -3
- package/dist/runtime/components/form/schema.d.ts +4 -0
- package/dist/runtime/components/form/schema.js +1 -0
- package/dist/runtime/components/form/unit-config.vue +6 -1
- package/dist/runtime/components/form/utils/form-vars.js +2 -0
- package/dist/runtime/components/form/utils/resolve.d.ts +10 -0
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/runtime.vue +13 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/schema.d.ts +1 -0
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/schema.js +4 -1
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/runtime.vue +10 -2
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/schema.d.ts +1 -0
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/schema.js +4 -1
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/runtime.vue +16 -0
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/schema.d.ts +1 -0
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/schema.js +3 -1
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/runtime.vue +13 -5
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/schema.d.ts +1 -0
- package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/schema.js +3 -1
- package/dist/runtime/components/table/config.vue +5 -1
- package/dist/runtime/components/table/row-provider.vue +8 -0
- package/dist/runtime/components/table/utils/resolve.d.ts +7 -0
- package/dist/runtime/components/table/utils/shared.js +4 -0
- package/dist/runtime/components/ui/expression-editor/CodeMirrorInput.d.vue.ts +1 -0
- package/dist/runtime/components/ui/expression-editor/CodeMirrorInput.vue +9 -1
- package/dist/runtime/components/ui/expression-editor/CodeMirrorInput.vue.d.ts +1 -0
- package/dist/runtime/components/ui/expression-editor/ExpressionEditor.d.vue.ts +2 -2
- package/dist/runtime/components/ui/expression-editor/ExpressionEditor.vue +33 -4
- package/dist/runtime/components/ui/expression-editor/ExpressionEditor.vue.d.ts +2 -2
- package/dist/runtime/components/ui/expression-editor/picker-entries.d.ts +3 -2
- package/dist/runtime/components/ui/expression-editor/picker-entries.js +14 -3
- package/dist/runtime/components/ui/expression-editor/selection-chip-extension.d.ts +4 -0
- package/dist/runtime/components/ui/expression-editor/selection-chip-extension.js +119 -0
- package/dist/runtime/components/ui/expression-editor/selection-refs.d.ts +8 -0
- package/dist/runtime/components/ui/expression-editor/selection-refs.js +29 -0
- package/dist/runtime/share/event-bus.d.ts +12 -12
- package/dist/runtime/utils/cel-context.d.ts +22 -0
- package/dist/runtime/utils/cel-context.js +8 -0
- package/dist/runtime/utils/selections-registry.d.ts +77 -0
- package/dist/runtime/utils/selections-registry.js +49 -0
- package/dist/runtime/vendor/cel-js/CLAUDE.md +2 -0
- package/dist/runtime/vendor/cel-js/PROMPT.md +8 -0
- package/dist/runtime/vendor/cel-js/lib/functions.js +4 -0
- package/package.json +1 -1
- package/dist/preview/assets/config-BNF2r9jW.js +0 -1
- package/dist/preview/assets/config-BxuGYvER.js +0 -1
- package/dist/preview/assets/config-Cy5w3JWQ.js +0 -1
- package/dist/preview/assets/config-Du5SuNSb.js +0 -1
- package/dist/preview/assets/config-ggyCcWNZ.js +0 -1
- package/dist/preview/assets/index-DsMR5NfK.css +0 -1
- package/dist/preview/assets/index-Yv78vz4W.js +0 -680
- package/dist/preview/assets/index-yrBKwEfk.js +0 -1
- package/dist/preview/assets/runtime-2S3Yr051.js +0 -1
- package/dist/preview/assets/runtime-C4jFTZ4Z.js +0 -1
- package/dist/runtime/share/form-validate.d.ts +0 -18
- package/dist/runtime/share/form-validate.js +0 -8
package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/schema.js
CHANGED
|
@@ -9,7 +9,10 @@ export const metadata = {
|
|
|
9
9
|
name: "\u6811\uFF08\u5355\u9009\uFF09",
|
|
10
10
|
icon: "fluent:tree-evergreen-20-regular",
|
|
11
11
|
w: { initial: 8, min: 4, max: Infinity },
|
|
12
|
-
h: { initial: 8, min: 4, max: Infinity, grow: true }
|
|
12
|
+
h: { initial: 8, min: 4, max: Infinity, grow: true },
|
|
13
|
+
// Publishes its resolved node (the backend record) to the `selections`
|
|
14
|
+
// registry (runtime.vue), readable via `selections["<id>"]`.
|
|
15
|
+
selection: true
|
|
13
16
|
};
|
|
14
17
|
export function schema(configure) {
|
|
15
18
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
@@ -15,10 +15,10 @@ import { provideCommitBus } from "./utils/commit-bus";
|
|
|
15
15
|
import { provideDerivedQuiescence, useDerived } from "./utils/derived";
|
|
16
16
|
import { useFormHistory } from "./utils/history";
|
|
17
17
|
import { evaluateInitial } from "./utils/initial";
|
|
18
|
-
import { provideFormValidate } from "../../share/form-validate";
|
|
19
18
|
import { provideEventTarget } from "../../share/event-bus";
|
|
20
19
|
import { provideFormReadonly } from "./utils/readonly";
|
|
21
20
|
import { provideFormState } from "./utils/state";
|
|
21
|
+
import { provideSelectionsRegistry } from "../../utils/selections-registry";
|
|
22
22
|
import { provideValidation } from "./utils/validation";
|
|
23
23
|
defineOptions({ name: "ShwfedForm" });
|
|
24
24
|
const state = defineModel({ type: Object, ...{ default: () => ({}) } });
|
|
@@ -29,13 +29,15 @@ const props = defineProps({
|
|
|
29
29
|
const configure = props.configure ?? (() => {
|
|
30
30
|
});
|
|
31
31
|
void configure;
|
|
32
|
+
const selections = provideSelectionsRegistry();
|
|
32
33
|
provideCELContext(buildFormRuntimeScope({
|
|
33
34
|
form: () => state.value ?? {},
|
|
34
35
|
now: () => new TZDate(),
|
|
35
36
|
// `formHistory` is created further down; these thunks are stored now and
|
|
36
37
|
// only called at eval time (long after setup), so reading it here is safe.
|
|
37
38
|
undoable: () => formHistory.canUndo.value,
|
|
38
|
-
redoable: () => formHistory.canRedo.value
|
|
39
|
+
redoable: () => formHistory.canRedo.value,
|
|
40
|
+
selections: () => selections.entries.value
|
|
39
41
|
}));
|
|
40
42
|
const inherited = injectCELContext();
|
|
41
43
|
const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
|
|
@@ -81,10 +83,16 @@ const validation = provideValidation({
|
|
|
81
83
|
seeded,
|
|
82
84
|
settled: quiescence.settled
|
|
83
85
|
});
|
|
84
|
-
provideFormValidate(validation.validate);
|
|
85
86
|
const formHistory = useFormHistory(state, { quiescence, seeded, dirty: formState.dirty });
|
|
87
|
+
class FormInvalid {
|
|
88
|
+
_tag = "FormInvalid";
|
|
89
|
+
}
|
|
86
90
|
const formInstanceId = config.value?.id ?? crypto.randomUUID();
|
|
87
91
|
provideEventTarget(formInstanceId, {
|
|
92
|
+
"validate": () => Effect.gen(function* () {
|
|
93
|
+
const valid = yield* Effect.promise(() => validation.validate());
|
|
94
|
+
if (!valid) yield* Effect.die(new FormInvalid());
|
|
95
|
+
}),
|
|
88
96
|
"undo": () => Effect.sync(formHistory.undo),
|
|
89
97
|
"redo": () => Effect.sync(formHistory.redo),
|
|
90
98
|
"reset-to-initial": () => Effect.sync(formHistory.reset)
|
|
@@ -11,6 +11,10 @@ export declare const metadata: {
|
|
|
11
11
|
readonly name: "表单";
|
|
12
12
|
readonly icon: "fluent:form-20-regular";
|
|
13
13
|
readonly operations: readonly [{
|
|
14
|
+
readonly id: "validate";
|
|
15
|
+
readonly name: "校验";
|
|
16
|
+
readonly icon: "fluent:checkmark-circle-20-regular";
|
|
17
|
+
}, {
|
|
14
18
|
readonly id: "undo";
|
|
15
19
|
readonly name: "撤销";
|
|
16
20
|
readonly icon: "fluent:arrow-undo-20-regular";
|
|
@@ -20,6 +20,7 @@ export const metadata = {
|
|
|
20
20
|
name: "\u8868\u5355",
|
|
21
21
|
icon: "fluent:form-20-regular",
|
|
22
22
|
operations: [
|
|
23
|
+
{ id: "validate", name: "\u6821\u9A8C", icon: "fluent:checkmark-circle-20-regular" },
|
|
23
24
|
{ id: "undo", name: "\u64A4\u9500", icon: "fluent:arrow-undo-20-regular" },
|
|
24
25
|
{ id: "redo", name: "\u91CD\u505A", icon: "fluent:arrow-redo-20-regular" },
|
|
25
26
|
{ id: "reset-to-initial", name: "\u91CD\u7F6E\u4E3A\u521D\u59CB\u503C", icon: "fluent:arrow-reset-20-regular" }
|
|
@@ -7,7 +7,8 @@ import { toast } from "vue-sonner";
|
|
|
7
7
|
import {
|
|
8
8
|
celBindings,
|
|
9
9
|
injectCELContext,
|
|
10
|
-
provideCELContext
|
|
10
|
+
provideCELContext,
|
|
11
|
+
provideSelectionRoster
|
|
11
12
|
} from "../../utils/cel-context";
|
|
12
13
|
import { findFreePlacement, normalizeLayoutSet, placeGroupAt } from "../../share/layout";
|
|
13
14
|
import { readClip, reidFragment, writeClip } from "../../share/clipboard";
|
|
@@ -45,6 +46,10 @@ const breadcrumbExt = inject(BREADCRUMB_EXTENSION_KEY, null);
|
|
|
45
46
|
const fullPane = ref(false);
|
|
46
47
|
provide(FORM_FIELD_LAYOUT_KEY, { fullPane });
|
|
47
48
|
provideCELContext(props.fieldCelScope ?? {});
|
|
49
|
+
const selectionRoster = computed(
|
|
50
|
+
() => unit.value.fields.filter((f) => findField(f.type, f.compatibilityDate)?.metadata?.selection).map((f) => ({ id: f.id, name: fieldLabel(f) }))
|
|
51
|
+
);
|
|
52
|
+
provideSelectionRoster(selectionRoster);
|
|
48
53
|
const takeover = inject(SIDEBAR_TAKEOVER_KEY, null);
|
|
49
54
|
const takeoverTarget = computed(() => takeover?.target.value ?? null);
|
|
50
55
|
const activeFieldId = computed(() => {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { SELECTIONS_VAR } from "../../../utils/cel-context.js";
|
|
1
2
|
export function registerFormVariablesIfAbsent(env) {
|
|
2
3
|
const declared = new Set(env.getDefinitions().variables.map((v) => v.name));
|
|
3
4
|
if (!declared.has("now")) env.registerVariable("now", "Date", { label: "\u5F53\u524D\u65F6\u95F4", description: "\u5F53\u524D\u65E5\u671F/\u65F6\u95F4" });
|
|
4
5
|
if (!declared.has("form")) env.registerVariable("form", "dyn", { label: "\u8868\u5355\u503C", description: "\u5F53\u524D\u8868\u5355\u72B6\u6001" });
|
|
5
6
|
if (!declared.has("undoable")) env.registerVariable("undoable", "bool", { label: "\u53EF\u64A4\u9500", description: "\u5F53\u524D\u662F\u5426\u6709\u53EF\u64A4\u9500\u7684\u4FEE\u6539" });
|
|
6
7
|
if (!declared.has("redoable")) env.registerVariable("redoable", "bool", { label: "\u53EF\u91CD\u505A", description: "\u5F53\u524D\u662F\u5426\u6709\u53EF\u91CD\u505A\u7684\u4FEE\u6539" });
|
|
8
|
+
if (!declared.has(SELECTIONS_VAR)) env.registerVariable(SELECTIONS_VAR, "dyn", { label: "\u9009\u4E2D\u9879", description: "\u5404\u9009\u62E9\u5B57\u6BB5\u5F53\u524D\u9009\u4E2D\u9879\u7684\u5B8C\u6574\u5BF9\u8C61\uFF08\u6309\u5B57\u6BB5\u6807\u8BC6\uFF09" });
|
|
7
9
|
}
|
|
@@ -65,6 +65,16 @@ export type FieldMetadata = Readonly<{
|
|
|
65
65
|
* fullscreen. See `BlockLayoutEditor`'s inline-config pane.
|
|
66
66
|
*/
|
|
67
67
|
inlineConfig?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Whether this field is *selection-like* — it publishes its currently-resolved
|
|
70
|
+
* full option to the `selections` registry at runtime (see
|
|
71
|
+
* `utils/selections-registry`), keyed by its uuid. The form's unit-config reads
|
|
72
|
+
* this to build the selection roster the ExpressionEditor advertises: a sibling
|
|
73
|
+
* expression reaches the chosen record via `selections["<id>"].code`, and the
|
|
74
|
+
* editor renders that uuid as this field's name. Set it together with the
|
|
75
|
+
* runtime publish so the picker never advertises a field that writes nothing.
|
|
76
|
+
*/
|
|
77
|
+
selection?: boolean;
|
|
68
78
|
}>;
|
|
69
79
|
/**
|
|
70
80
|
* Optional creation-time defaults factory. Returns a partial config that
|
|
@@ -50,9 +50,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
50
50
|
readonly locale: "en" | "ja" | "ko";
|
|
51
51
|
readonly message: string;
|
|
52
52
|
}[]];
|
|
53
|
-
readonly successMessage?: string | undefined;
|
|
54
53
|
readonly accessor: string;
|
|
55
54
|
readonly sortKey?: string | undefined;
|
|
55
|
+
readonly successMessage?: string | undefined;
|
|
56
56
|
}) => any;
|
|
57
57
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
58
58
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -102,9 +102,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
102
102
|
readonly locale: "en" | "ja" | "ko";
|
|
103
103
|
readonly message: string;
|
|
104
104
|
}[]];
|
|
105
|
-
readonly successMessage?: string | undefined;
|
|
106
105
|
readonly accessor: string;
|
|
107
106
|
readonly sortKey?: string | undefined;
|
|
107
|
+
readonly successMessage?: string | undefined;
|
|
108
108
|
}) => any) | undefined;
|
|
109
109
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
110
110
|
declare const _default: typeof __VLS_export;
|
|
@@ -50,9 +50,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
50
50
|
readonly locale: "en" | "ja" | "ko";
|
|
51
51
|
readonly message: string;
|
|
52
52
|
}[]];
|
|
53
|
-
readonly successMessage?: string | undefined;
|
|
54
53
|
readonly accessor: string;
|
|
55
54
|
readonly sortKey?: string | undefined;
|
|
55
|
+
readonly successMessage?: string | undefined;
|
|
56
56
|
}) => any;
|
|
57
57
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
58
58
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -102,9 +102,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
102
102
|
readonly locale: "en" | "ja" | "ko";
|
|
103
103
|
readonly message: string;
|
|
104
104
|
}[]];
|
|
105
|
-
readonly successMessage?: string | undefined;
|
|
106
105
|
readonly accessor: string;
|
|
107
106
|
readonly sortKey?: string | undefined;
|
|
107
|
+
readonly successMessage?: string | undefined;
|
|
108
108
|
}) => any) | undefined;
|
|
109
109
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
110
110
|
declare const _default: typeof __VLS_export;
|
|
@@ -64,9 +64,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
64
64
|
readonly readonly?: string | undefined;
|
|
65
65
|
readonly grow?: boolean | undefined;
|
|
66
66
|
readonly enableSorting?: boolean | undefined;
|
|
67
|
-
readonly successMessage?: string | undefined;
|
|
68
67
|
readonly accessor: string;
|
|
69
68
|
readonly sortKey?: string | undefined;
|
|
69
|
+
readonly successMessage?: string | undefined;
|
|
70
70
|
}) => any;
|
|
71
71
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
72
72
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -130,9 +130,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
130
130
|
readonly readonly?: string | undefined;
|
|
131
131
|
readonly grow?: boolean | undefined;
|
|
132
132
|
readonly enableSorting?: boolean | undefined;
|
|
133
|
-
readonly successMessage?: string | undefined;
|
|
134
133
|
readonly accessor: string;
|
|
135
134
|
readonly sortKey?: string | undefined;
|
|
135
|
+
readonly successMessage?: string | undefined;
|
|
136
136
|
}) => any) | undefined;
|
|
137
137
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
138
138
|
declare const _default: typeof __VLS_export;
|
|
@@ -64,9 +64,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
64
64
|
readonly readonly?: string | undefined;
|
|
65
65
|
readonly grow?: boolean | undefined;
|
|
66
66
|
readonly enableSorting?: boolean | undefined;
|
|
67
|
-
readonly successMessage?: string | undefined;
|
|
68
67
|
readonly accessor: string;
|
|
69
68
|
readonly sortKey?: string | undefined;
|
|
69
|
+
readonly successMessage?: string | undefined;
|
|
70
70
|
}) => any;
|
|
71
71
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
72
72
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -130,9 +130,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
130
130
|
readonly readonly?: string | undefined;
|
|
131
131
|
readonly grow?: boolean | undefined;
|
|
132
132
|
readonly enableSorting?: boolean | undefined;
|
|
133
|
-
readonly successMessage?: string | undefined;
|
|
134
133
|
readonly accessor: string;
|
|
135
134
|
readonly sortKey?: string | undefined;
|
|
135
|
+
readonly successMessage?: string | undefined;
|
|
136
136
|
}) => any) | undefined;
|
|
137
137
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
138
138
|
declare const _default: typeof __VLS_export;
|
|
@@ -50,9 +50,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
50
50
|
readonly locale: "en" | "ja" | "ko";
|
|
51
51
|
readonly message: string;
|
|
52
52
|
}[]];
|
|
53
|
-
readonly successMessage?: string | undefined;
|
|
54
53
|
readonly accessor: string;
|
|
55
54
|
readonly sortKey?: string | undefined;
|
|
55
|
+
readonly successMessage?: string | undefined;
|
|
56
56
|
}) => any;
|
|
57
57
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
58
58
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -102,9 +102,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
102
102
|
readonly locale: "en" | "ja" | "ko";
|
|
103
103
|
readonly message: string;
|
|
104
104
|
}[]];
|
|
105
|
-
readonly successMessage?: string | undefined;
|
|
106
105
|
readonly accessor: string;
|
|
107
106
|
readonly sortKey?: string | undefined;
|
|
107
|
+
readonly successMessage?: string | undefined;
|
|
108
108
|
}) => any) | undefined;
|
|
109
109
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
110
110
|
declare const _default: typeof __VLS_export;
|
|
@@ -50,9 +50,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
50
50
|
readonly locale: "en" | "ja" | "ko";
|
|
51
51
|
readonly message: string;
|
|
52
52
|
}[]];
|
|
53
|
-
readonly successMessage?: string | undefined;
|
|
54
53
|
readonly accessor: string;
|
|
55
54
|
readonly sortKey?: string | undefined;
|
|
55
|
+
readonly successMessage?: string | undefined;
|
|
56
56
|
}) => any;
|
|
57
57
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
58
58
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -102,9 +102,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
102
102
|
readonly locale: "en" | "ja" | "ko";
|
|
103
103
|
readonly message: string;
|
|
104
104
|
}[]];
|
|
105
|
-
readonly successMessage?: string | undefined;
|
|
106
105
|
readonly accessor: string;
|
|
107
106
|
readonly sortKey?: string | undefined;
|
|
107
|
+
readonly successMessage?: string | undefined;
|
|
108
108
|
}) => any) | undefined;
|
|
109
109
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
110
110
|
declare const _default: typeof __VLS_export;
|
|
@@ -64,9 +64,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
64
64
|
readonly readonly?: string | undefined;
|
|
65
65
|
readonly grow?: boolean | undefined;
|
|
66
66
|
readonly enableSorting?: boolean | undefined;
|
|
67
|
-
readonly successMessage?: string | undefined;
|
|
68
67
|
readonly accessor: string;
|
|
69
68
|
readonly sortKey?: string | undefined;
|
|
69
|
+
readonly successMessage?: string | undefined;
|
|
70
70
|
}) => any;
|
|
71
71
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
72
72
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -130,9 +130,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
130
130
|
readonly readonly?: string | undefined;
|
|
131
131
|
readonly grow?: boolean | undefined;
|
|
132
132
|
readonly enableSorting?: boolean | undefined;
|
|
133
|
-
readonly successMessage?: string | undefined;
|
|
134
133
|
readonly accessor: string;
|
|
135
134
|
readonly sortKey?: string | undefined;
|
|
135
|
+
readonly successMessage?: string | undefined;
|
|
136
136
|
}) => any) | undefined;
|
|
137
137
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
138
138
|
declare const _default: typeof __VLS_export;
|
|
@@ -64,9 +64,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
64
64
|
readonly readonly?: string | undefined;
|
|
65
65
|
readonly grow?: boolean | undefined;
|
|
66
66
|
readonly enableSorting?: boolean | undefined;
|
|
67
|
-
readonly successMessage?: string | undefined;
|
|
68
67
|
readonly accessor: string;
|
|
69
68
|
readonly sortKey?: string | undefined;
|
|
69
|
+
readonly successMessage?: string | undefined;
|
|
70
70
|
}) => any;
|
|
71
71
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
72
72
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -130,9 +130,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
130
130
|
readonly readonly?: string | undefined;
|
|
131
131
|
readonly grow?: boolean | undefined;
|
|
132
132
|
readonly enableSorting?: boolean | undefined;
|
|
133
|
-
readonly successMessage?: string | undefined;
|
|
134
133
|
readonly accessor: string;
|
|
135
134
|
readonly sortKey?: string | undefined;
|
|
135
|
+
readonly successMessage?: string | undefined;
|
|
136
136
|
}) => any) | undefined;
|
|
137
137
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
138
138
|
declare const _default: typeof __VLS_export;
|
|
@@ -79,9 +79,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
79
79
|
};
|
|
80
80
|
}[];
|
|
81
81
|
};
|
|
82
|
-
readonly successMessage?: string | undefined;
|
|
83
82
|
readonly accessor: string;
|
|
84
83
|
readonly sortKey?: string | undefined;
|
|
84
|
+
readonly successMessage?: string | undefined;
|
|
85
85
|
}) => any;
|
|
86
86
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
87
87
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -160,9 +160,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
160
160
|
};
|
|
161
161
|
}[];
|
|
162
162
|
};
|
|
163
|
-
readonly successMessage?: string | undefined;
|
|
164
163
|
readonly accessor: string;
|
|
165
164
|
readonly sortKey?: string | undefined;
|
|
165
|
+
readonly successMessage?: string | undefined;
|
|
166
166
|
}) => any) | undefined;
|
|
167
167
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
168
168
|
declare const _default: typeof __VLS_export;
|
|
@@ -79,9 +79,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
79
79
|
};
|
|
80
80
|
}[];
|
|
81
81
|
};
|
|
82
|
-
readonly successMessage?: string | undefined;
|
|
83
82
|
readonly accessor: string;
|
|
84
83
|
readonly sortKey?: string | undefined;
|
|
84
|
+
readonly successMessage?: string | undefined;
|
|
85
85
|
}) => any;
|
|
86
86
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
87
87
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -160,9 +160,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
160
160
|
};
|
|
161
161
|
}[];
|
|
162
162
|
};
|
|
163
|
-
readonly successMessage?: string | undefined;
|
|
164
163
|
readonly accessor: string;
|
|
165
164
|
readonly sortKey?: string | undefined;
|
|
165
|
+
readonly successMessage?: string | undefined;
|
|
166
166
|
}) => any) | undefined;
|
|
167
167
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
168
168
|
declare const _default: typeof __VLS_export;
|
|
@@ -79,9 +79,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
79
79
|
};
|
|
80
80
|
}[];
|
|
81
81
|
};
|
|
82
|
-
readonly successMessage?: string | undefined;
|
|
83
82
|
readonly accessor: string;
|
|
84
83
|
readonly sortKey?: string | undefined;
|
|
84
|
+
readonly successMessage?: string | undefined;
|
|
85
85
|
}) => any;
|
|
86
86
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
87
87
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -160,9 +160,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
160
160
|
};
|
|
161
161
|
}[];
|
|
162
162
|
};
|
|
163
|
-
readonly successMessage?: string | undefined;
|
|
164
163
|
readonly accessor: string;
|
|
165
164
|
readonly sortKey?: string | undefined;
|
|
165
|
+
readonly successMessage?: string | undefined;
|
|
166
166
|
}) => any) | undefined;
|
|
167
167
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
168
168
|
declare const _default: typeof __VLS_export;
|
|
@@ -79,9 +79,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
79
79
|
};
|
|
80
80
|
}[];
|
|
81
81
|
};
|
|
82
|
-
readonly successMessage?: string | undefined;
|
|
83
82
|
readonly accessor: string;
|
|
84
83
|
readonly sortKey?: string | undefined;
|
|
84
|
+
readonly successMessage?: string | undefined;
|
|
85
85
|
}) => any;
|
|
86
86
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
87
87
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -160,9 +160,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
160
160
|
};
|
|
161
161
|
}[];
|
|
162
162
|
};
|
|
163
|
-
readonly successMessage?: string | undefined;
|
|
164
163
|
readonly accessor: string;
|
|
165
164
|
readonly sortKey?: string | undefined;
|
|
165
|
+
readonly successMessage?: string | undefined;
|
|
166
166
|
}) => any) | undefined;
|
|
167
167
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
168
168
|
declare const _default: typeof __VLS_export;
|
|
@@ -87,8 +87,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
87
87
|
readonly target: string;
|
|
88
88
|
readonly operation: string;
|
|
89
89
|
}[] | undefined;
|
|
90
|
-
readonly successMessage?: string | undefined;
|
|
91
90
|
readonly accessor: string;
|
|
91
|
+
readonly successMessage?: string | undefined;
|
|
92
92
|
};
|
|
93
93
|
}) => any;
|
|
94
94
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
@@ -176,8 +176,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
176
176
|
readonly target: string;
|
|
177
177
|
readonly operation: string;
|
|
178
178
|
}[] | undefined;
|
|
179
|
-
readonly successMessage?: string | undefined;
|
|
180
179
|
readonly accessor: string;
|
|
180
|
+
readonly successMessage?: string | undefined;
|
|
181
181
|
};
|
|
182
182
|
}) => any) | undefined;
|
|
183
183
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -87,8 +87,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
87
87
|
readonly target: string;
|
|
88
88
|
readonly operation: string;
|
|
89
89
|
}[] | undefined;
|
|
90
|
-
readonly successMessage?: string | undefined;
|
|
91
90
|
readonly accessor: string;
|
|
91
|
+
readonly successMessage?: string | undefined;
|
|
92
92
|
};
|
|
93
93
|
}) => any;
|
|
94
94
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
@@ -176,8 +176,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
176
176
|
readonly target: string;
|
|
177
177
|
readonly operation: string;
|
|
178
178
|
}[] | undefined;
|
|
179
|
-
readonly successMessage?: string | undefined;
|
|
180
179
|
readonly accessor: string;
|
|
180
|
+
readonly successMessage?: string | undefined;
|
|
181
181
|
};
|
|
182
182
|
}) => any) | undefined;
|
|
183
183
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -9,6 +9,7 @@ import { useI18n } from "vue-i18n";
|
|
|
9
9
|
import { asRequest, fetchJsonOption } from "../../../../../share/request";
|
|
10
10
|
import { cel as _rawCel } from "../../../../../utils/cel";
|
|
11
11
|
import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
|
|
12
|
+
import { publishSelection } from "../../../../../utils/selections-registry";
|
|
12
13
|
import { getLocalizedText } from "../../../../../share/locale";
|
|
13
14
|
import { dispatchTriggers, useEventChannel } from "../../../../../share/event-bus";
|
|
14
15
|
import {
|
|
@@ -97,7 +98,8 @@ const staticEntries = computed(() => {
|
|
|
97
98
|
value: item.value.value,
|
|
98
99
|
label: labelTpl ? safeInterpolate(labelTpl, {}) : "",
|
|
99
100
|
tooltip: tooltipTpl ? safeInterpolate(tooltipTpl, {}) : void 0,
|
|
100
|
-
keywords: (item.keywords ?? []).join(" ")
|
|
101
|
+
keywords: (item.keywords ?? []).join(" "),
|
|
102
|
+
raw: item
|
|
101
103
|
};
|
|
102
104
|
});
|
|
103
105
|
});
|
|
@@ -205,7 +207,8 @@ const remoteEntries = computed(() => {
|
|
|
205
207
|
key: String(idx),
|
|
206
208
|
label: labelOf(option),
|
|
207
209
|
value: valueOf(option),
|
|
208
|
-
keywords: keywordsOf(option)
|
|
210
|
+
keywords: keywordsOf(option),
|
|
211
|
+
raw: option
|
|
209
212
|
}));
|
|
210
213
|
});
|
|
211
214
|
const entries = computed(
|
|
@@ -244,6 +247,14 @@ const selectedKeySet = computed(() => new Set(selectedKeys.value));
|
|
|
244
247
|
const selectedEntries = computed(
|
|
245
248
|
() => selectedKeys.value.map((k) => entries.value.find((e) => e.key === k)).filter((e) => !!e)
|
|
246
249
|
);
|
|
250
|
+
publishSelection(
|
|
251
|
+
props.column.id,
|
|
252
|
+
() => selectedEntries.value.length > 0 ? selectedEntries.value : void 0,
|
|
253
|
+
{
|
|
254
|
+
identity: (list) => list.map((e) => e.key).join(" "),
|
|
255
|
+
raw: (list) => list.map((e) => e.raw)
|
|
256
|
+
}
|
|
257
|
+
);
|
|
247
258
|
const triggerLabel = computed(() => {
|
|
248
259
|
const arr = selectedEntries.value;
|
|
249
260
|
if (arr.length === 0) return "";
|
|
@@ -7,6 +7,7 @@ export declare const compatibilityDate: "2026-05-28";
|
|
|
7
7
|
export declare const metadata: {
|
|
8
8
|
readonly name: "多选";
|
|
9
9
|
readonly icon: "fluent:chevron-down-20-regular";
|
|
10
|
+
readonly selection: true;
|
|
10
11
|
};
|
|
11
12
|
export declare function itemSchema(configure: (env: Environment) => void): Schema.Struct<{
|
|
12
13
|
id: Schema.refine<string, typeof Schema.String>;
|
|
@@ -15,7 +15,10 @@ export const type = "com.shwfed.table.column.combobox-multi";
|
|
|
15
15
|
export const compatibilityDate = "2026-05-28";
|
|
16
16
|
export const metadata = {
|
|
17
17
|
name: "\u591A\u9009",
|
|
18
|
-
icon: "fluent:chevron-down-20-regular"
|
|
18
|
+
icon: "fluent:chevron-down-20-regular",
|
|
19
|
+
// Publishes its resolved options (array) to the per-row `selections` registry
|
|
20
|
+
// (runtime.vue), readable via `selections["<id>"]`.
|
|
21
|
+
selection: true
|
|
19
22
|
};
|
|
20
23
|
const isListType = (actual) => actual === "dyn" || actual.startsWith("list");
|
|
21
24
|
const isKeywordsType = (actual) => actual === "dyn" || actual.startsWith("list") || actual.startsWith("optional");
|
|
@@ -87,8 +87,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
87
87
|
readonly target: string;
|
|
88
88
|
readonly operation: string;
|
|
89
89
|
}[] | undefined;
|
|
90
|
-
readonly successMessage?: string | undefined;
|
|
91
90
|
readonly accessor: string;
|
|
91
|
+
readonly successMessage?: string | undefined;
|
|
92
92
|
};
|
|
93
93
|
}) => any;
|
|
94
94
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
@@ -176,8 +176,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
176
176
|
readonly target: string;
|
|
177
177
|
readonly operation: string;
|
|
178
178
|
}[] | undefined;
|
|
179
|
-
readonly successMessage?: string | undefined;
|
|
180
179
|
readonly accessor: string;
|
|
180
|
+
readonly successMessage?: string | undefined;
|
|
181
181
|
};
|
|
182
182
|
}) => any) | undefined;
|
|
183
183
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -87,8 +87,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
87
87
|
readonly target: string;
|
|
88
88
|
readonly operation: string;
|
|
89
89
|
}[] | undefined;
|
|
90
|
-
readonly successMessage?: string | undefined;
|
|
91
90
|
readonly accessor: string;
|
|
91
|
+
readonly successMessage?: string | undefined;
|
|
92
92
|
};
|
|
93
93
|
}) => any;
|
|
94
94
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
@@ -176,8 +176,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
176
176
|
readonly target: string;
|
|
177
177
|
readonly operation: string;
|
|
178
178
|
}[] | undefined;
|
|
179
|
-
readonly successMessage?: string | undefined;
|
|
180
179
|
readonly accessor: string;
|
|
180
|
+
readonly successMessage?: string | undefined;
|
|
181
181
|
};
|
|
182
182
|
}) => any) | undefined;
|
|
183
183
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -9,6 +9,7 @@ import { useI18n } from "vue-i18n";
|
|
|
9
9
|
import { asRequest, fetchJsonOption } from "../../../../../share/request";
|
|
10
10
|
import { cel as _rawCel } from "../../../../../utils/cel";
|
|
11
11
|
import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
|
|
12
|
+
import { publishSelection } from "../../../../../utils/selections-registry";
|
|
12
13
|
import { getLocalizedText } from "../../../../../share/locale";
|
|
13
14
|
import { dispatchTriggers, useEventChannel } from "../../../../../share/event-bus";
|
|
14
15
|
import {
|
|
@@ -97,7 +98,8 @@ const staticEntries = computed(() => {
|
|
|
97
98
|
value: item.value.value,
|
|
98
99
|
label: labelTpl ? safeInterpolate(labelTpl, {}) : "",
|
|
99
100
|
tooltip: tooltipTpl ? safeInterpolate(tooltipTpl, {}) : void 0,
|
|
100
|
-
keywords: (item.keywords ?? []).join(" ")
|
|
101
|
+
keywords: (item.keywords ?? []).join(" "),
|
|
102
|
+
raw: item
|
|
101
103
|
};
|
|
102
104
|
});
|
|
103
105
|
});
|
|
@@ -205,7 +207,8 @@ const remoteEntries = computed(() => {
|
|
|
205
207
|
key: String(idx),
|
|
206
208
|
label: labelOf(option),
|
|
207
209
|
value: valueOf(option),
|
|
208
|
-
keywords: keywordsOf(option)
|
|
210
|
+
keywords: keywordsOf(option),
|
|
211
|
+
raw: option
|
|
209
212
|
}));
|
|
210
213
|
});
|
|
211
214
|
const entries = computed(
|
|
@@ -232,6 +235,11 @@ const selectedEntry = computed(
|
|
|
232
235
|
);
|
|
233
236
|
const selectedKey = computed(() => selectedEntry.value?.key);
|
|
234
237
|
const selectedLabel = computed(() => selectedEntry.value?.label ?? "");
|
|
238
|
+
publishSelection(
|
|
239
|
+
props.column.id,
|
|
240
|
+
() => selectedEntry.value,
|
|
241
|
+
{ identity: (entry) => entry.key, raw: (entry) => entry.raw }
|
|
242
|
+
);
|
|
235
243
|
const open = ref(false);
|
|
236
244
|
const isDisabled = computed(
|
|
237
245
|
() => !isInteractive.value || isDisabledByConfig.value || pending.value
|
|
@@ -7,6 +7,7 @@ export declare const compatibilityDate: "2026-05-28";
|
|
|
7
7
|
export declare const metadata: {
|
|
8
8
|
readonly name: "单选";
|
|
9
9
|
readonly icon: "fluent:chevron-down-20-regular";
|
|
10
|
+
readonly selection: true;
|
|
10
11
|
};
|
|
11
12
|
export declare function itemSchema(configure: (env: Environment) => void): Schema.Struct<{
|
|
12
13
|
id: Schema.refine<string, typeof Schema.String>;
|
|
@@ -15,7 +15,10 @@ export const type = "com.shwfed.table.column.combobox-single";
|
|
|
15
15
|
export const compatibilityDate = "2026-05-28";
|
|
16
16
|
export const metadata = {
|
|
17
17
|
name: "\u5355\u9009",
|
|
18
|
-
icon: "fluent:chevron-down-20-regular"
|
|
18
|
+
icon: "fluent:chevron-down-20-regular",
|
|
19
|
+
// Publishes its resolved option (the source record) to the per-row
|
|
20
|
+
// `selections` registry (runtime.vue), readable via `selections["<id>"]`.
|
|
21
|
+
selection: true
|
|
19
22
|
};
|
|
20
23
|
const isListType = (actual) => actual === "dyn" || actual.startsWith("list");
|
|
21
24
|
const isKeywordsType = (actual) => actual === "dyn" || actual.startsWith("list") || actual.startsWith("optional");
|