@shwfed/config 2.12.15 → 2.12.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module.json +1 -1
- package/dist/runtime/components/actions/components/group.vue +1 -0
- package/dist/runtime/components/config/use-editor.js +9 -0
- package/dist/runtime/components/config/utils/linkage.d.ts +29 -0
- package/dist/runtime/components/config/utils/linkage.js +57 -0
- package/dist/runtime/components/config/utils/validation-error.d.ts +1 -0
- package/dist/runtime/components/config/utils/validation-error.js +1 -1
- package/dist/runtime/components/form/FormUnitRenderer.vue +6 -1
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue.d.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.d.vue.ts +18 -18
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue.d.ts +18 -18
- package/dist/runtime/components/sidebar/use-editor.js +6 -0
- package/dist/runtime/share/layout.js +2 -2
- package/dist/runtime/share/slot-renderer.vue +6 -1
- package/dist/runtime/share/viewport.d.ts +16 -0
- package/dist/runtime/share/viewport.js +11 -0
- package/dist/runtime/utils/cel.js +6 -1
- package/package.json +1 -1
package/dist/module.json
CHANGED
|
@@ -6,6 +6,7 @@ import { readClip, reidFragment, writeClip } from "../../share/clipboard.js";
|
|
|
6
6
|
import { PageConfig } from "./schema.js";
|
|
7
7
|
import { BLOCKS, findBlock } from "./utils/resolve.js";
|
|
8
8
|
import { formatValidationError } from "./utils/validation-error.js";
|
|
9
|
+
import { findDanglingLinkages, formatDanglingLinkages } from "./utils/linkage.js";
|
|
9
10
|
import { createExpressionValidityRegistry, provideExpressionValidity } from "../ui/expression-editor/index.js";
|
|
10
11
|
function deepClone(value) {
|
|
11
12
|
return JSON.parse(JSON.stringify(value));
|
|
@@ -384,6 +385,14 @@ export function useConfigEditor(model, options = {}) {
|
|
|
384
385
|
validationError.value = "\u5B58\u5728\u65E0\u6548\u7684\u8DE8\u5C42\u4F5C\u7528\u57DF\u5F15\u7528\uFF0C\u8BF7\u4FEE\u6B63\u6807\u7EA2\u7684\u8868\u8FBE\u5F0F\u540E\u518D\u4FDD\u5B58";
|
|
385
386
|
return;
|
|
386
387
|
}
|
|
388
|
+
const dangling = findDanglingLinkages(decoded);
|
|
389
|
+
if (dangling.length > 0) {
|
|
390
|
+
validationError.value = formatDanglingLinkages(dangling, decoded, (i) => {
|
|
391
|
+
const b = topSlotEditor.blocks.value[i];
|
|
392
|
+
return b ? topSlotEditor.getBlockLabel(b) : void 0;
|
|
393
|
+
});
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
387
396
|
validationError.value = null;
|
|
388
397
|
model.value = decoded;
|
|
389
398
|
baseline.value = deepClone(decoded);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type LinkageKind = 'operation' | 'step' | 'scope';
|
|
2
|
+
export type DanglingLinkage = Readonly<{
|
|
3
|
+
kind: LinkageKind;
|
|
4
|
+
/** The referenced uuid that is not defined anywhere in the tree. */
|
|
5
|
+
id: string;
|
|
6
|
+
/**
|
|
7
|
+
* Property path from the config root to the offending reference
|
|
8
|
+
* (`['slot','blocks',0,'actions','buttons',1,'params','rows',2,'value']`).
|
|
9
|
+
* Fed to `describePath` for the breadcrumb — the same one the schema decoder
|
|
10
|
+
* renders — so the message pins the exact field, not just the top block.
|
|
11
|
+
*/
|
|
12
|
+
path: ReadonlyArray<PropertyKey>;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Find every linkage in `config` whose target uuid is not defined anywhere in
|
|
16
|
+
* the tree. `PAGE_TARGET_ID` (the singleton page target sentinel) is always
|
|
17
|
+
* valid — it names the outermost page, which carries no stored id. Each result
|
|
18
|
+
* carries the property path from the config root to the offending reference, so
|
|
19
|
+
* the caller can render a field-level breadcrumb (see `describePath`).
|
|
20
|
+
*/
|
|
21
|
+
export declare function findDanglingLinkages(config: unknown): DanglingLinkage[];
|
|
22
|
+
/**
|
|
23
|
+
* One-line save-footer message for a non-empty dangling list. Renders the
|
|
24
|
+
* breadcrumb to the first offending reference (`「表单 › 确定 › value」`) via the
|
|
25
|
+
* shared `describePath`, tagged with its kind, with a trailing count when more
|
|
26
|
+
* remain. `rootData` is the decoded config the paths index into; `blockLabelAt`
|
|
27
|
+
* gives the nicest label for a top-level block (the host's `getBlockLabel`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatDanglingLinkages(dangling: ReadonlyArray<DanglingLinkage>, rootData: unknown, blockLabelAt: (index: number) => string | undefined): string;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { PAGE_TARGET_ID } from "../../../share/page-target.js";
|
|
2
|
+
import { scanScopeRefs } from "../../ui/expression-editor/scope-refs.js";
|
|
3
|
+
import { scanStepRefs } from "../../ui/expression-editor/step-refs.js";
|
|
4
|
+
import { describePath } from "./validation-error.js";
|
|
5
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
6
|
+
function isObject(v) {
|
|
7
|
+
return v !== null && typeof v === "object" && !Array.isArray(v);
|
|
8
|
+
}
|
|
9
|
+
function collectDefinedIds(node, into) {
|
|
10
|
+
if (Array.isArray(node)) {
|
|
11
|
+
for (const v of node) collectDefinedIds(v, into);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (!isObject(node)) return;
|
|
15
|
+
for (const [k, v] of Object.entries(node)) {
|
|
16
|
+
if (k === "id" && typeof v === "string" && UUID_RE.test(v)) into.add(v);
|
|
17
|
+
collectDefinedIds(v, into);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function collectRefs(node, path, into) {
|
|
21
|
+
if (Array.isArray(node)) {
|
|
22
|
+
node.forEach((v, i) => collectRefs(v, [...path, i], into));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (!isObject(node)) {
|
|
26
|
+
if (typeof node === "string") {
|
|
27
|
+
for (const r of scanStepRefs(node)) into.push({ kind: "step", id: r.id, path });
|
|
28
|
+
for (const r of scanScopeRefs(node)) into.push({ kind: "scope", id: r.id, path });
|
|
29
|
+
}
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (typeof node.target === "string" && typeof node.operation === "string" && UUID_RE.test(node.target)) {
|
|
33
|
+
into.push({ kind: "operation", id: node.target, path: [...path, "target"] });
|
|
34
|
+
}
|
|
35
|
+
for (const [k, v] of Object.entries(node)) collectRefs(v, [...path, k], into);
|
|
36
|
+
}
|
|
37
|
+
export function findDanglingLinkages(config) {
|
|
38
|
+
const defined = /* @__PURE__ */ new Set();
|
|
39
|
+
collectDefinedIds(config, defined);
|
|
40
|
+
const refs = [];
|
|
41
|
+
collectRefs(config, [], refs);
|
|
42
|
+
return refs.filter((r) => r.id !== PAGE_TARGET_ID && !defined.has(r.id));
|
|
43
|
+
}
|
|
44
|
+
const KIND_LABEL = {
|
|
45
|
+
operation: "\u89E6\u53D1\u64CD\u4F5C",
|
|
46
|
+
step: "\u6B65\u9AA4\u5F15\u7528",
|
|
47
|
+
scope: "\u8DE8\u5C42\u4F5C\u7528\u57DF\u5F15\u7528"
|
|
48
|
+
};
|
|
49
|
+
export function formatDanglingLinkages(dangling, rootData, blockLabelAt) {
|
|
50
|
+
const first = dangling[0];
|
|
51
|
+
if (!first) return "";
|
|
52
|
+
const kind = KIND_LABEL[first.kind];
|
|
53
|
+
const segs = describePath(first.path, rootData, blockLabelAt);
|
|
54
|
+
const where = segs.length > 0 ? `\u300C${segs.join(" \u203A ")}\u300D\u7684${kind}` : kind;
|
|
55
|
+
const suffix = dangling.length > 1 ? `\uFF08\u8FD8\u6709 ${dangling.length - 1} \u4E2A\uFF09` : "";
|
|
56
|
+
return `${where}\u5F15\u7528\u4E86\u5DF2\u5931\u6548\u7684\u8D44\u6E90\uFF08\u6765\u6E90\u4E0D\u5B58\u5728\u4E8E\u5F53\u524D\u914D\u7F6E\u4E2D\uFF09\uFF0C\u8BF7\u4FEE\u6B63\u540E\u518D\u4FDD\u5B58${suffix}`;
|
|
57
|
+
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
export declare function describePath(path: ReadonlyArray<PropertyKey>, rootData: unknown, blockLabelAt: (index: number) => string | undefined): string[];
|
|
1
2
|
export declare function formatValidationError(err: unknown, blockLabelAt: (index: number) => string | undefined, rootData?: unknown): string;
|
|
@@ -19,7 +19,7 @@ function nodeLabel(node) {
|
|
|
19
19
|
if (!isObject(node)) return void 0;
|
|
20
20
|
return localeText(node.label) ?? localeText(node.title) ?? (typeof node.displayName === "string" && node.displayName.trim() ? node.displayName.trim() : void 0) ?? (typeof node.type === "string" ? node.type : void 0);
|
|
21
21
|
}
|
|
22
|
-
function describePath(path, rootData, blockLabelAt) {
|
|
22
|
+
export function describePath(path, rootData, blockLabelAt) {
|
|
23
23
|
const segs = [];
|
|
24
24
|
let node = rootData;
|
|
25
25
|
let labeledTopBlock = false;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { DEFAULT_GAP } from "./schema";
|
|
4
4
|
import { findField } from "./utils/resolve";
|
|
5
|
+
import { useViewportRevision } from "../../share/viewport";
|
|
5
6
|
defineOptions({ name: "ShwfedFormUnitRenderer" });
|
|
6
7
|
const props = defineProps({
|
|
7
8
|
unit: { type: Object, required: true },
|
|
@@ -19,7 +20,11 @@ function pickLayout(sets) {
|
|
|
19
20
|
}
|
|
20
21
|
return sets[sets.length - 1];
|
|
21
22
|
}
|
|
22
|
-
const
|
|
23
|
+
const viewportRevision = useViewportRevision();
|
|
24
|
+
const activeLayout = computed(() => {
|
|
25
|
+
void viewportRevision.value;
|
|
26
|
+
return pickLayout(props.unit.layouts);
|
|
27
|
+
});
|
|
23
28
|
const warnedMissing = /* @__PURE__ */ new Set();
|
|
24
29
|
const placedFields = computed(() => {
|
|
25
30
|
const layout = activeLayout.value?.layout;
|
|
@@ -56,6 +56,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
56
56
|
readonly message: string;
|
|
57
57
|
}[]];
|
|
58
58
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
59
|
+
readonly nodeTooltip?: readonly [{
|
|
60
|
+
readonly locale: "zh";
|
|
61
|
+
readonly message: string;
|
|
62
|
+
}, ...{
|
|
63
|
+
readonly locale: "en" | "ja" | "ko";
|
|
64
|
+
readonly message: string;
|
|
65
|
+
}[]] | undefined;
|
|
66
|
+
readonly nodeSelectable?: string | undefined;
|
|
67
|
+
readonly expandAll: boolean;
|
|
59
68
|
readonly validations?: readonly {
|
|
60
69
|
readonly message: readonly [{
|
|
61
70
|
readonly locale: "zh";
|
|
@@ -67,15 +76,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
67
76
|
readonly warning?: boolean | undefined;
|
|
68
77
|
readonly when: string;
|
|
69
78
|
}[] | undefined;
|
|
70
|
-
readonly nodeTooltip?: readonly [{
|
|
71
|
-
readonly locale: "zh";
|
|
72
|
-
readonly message: string;
|
|
73
|
-
}, ...{
|
|
74
|
-
readonly locale: "en" | "ja" | "ko";
|
|
75
|
-
readonly message: string;
|
|
76
|
-
}[]] | undefined;
|
|
77
|
-
readonly nodeSelectable?: string | undefined;
|
|
78
|
-
readonly expandAll: boolean;
|
|
79
79
|
}) => any;
|
|
80
80
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
81
81
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -131,6 +131,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
131
131
|
readonly message: string;
|
|
132
132
|
}[]];
|
|
133
133
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
134
|
+
readonly nodeTooltip?: readonly [{
|
|
135
|
+
readonly locale: "zh";
|
|
136
|
+
readonly message: string;
|
|
137
|
+
}, ...{
|
|
138
|
+
readonly locale: "en" | "ja" | "ko";
|
|
139
|
+
readonly message: string;
|
|
140
|
+
}[]] | undefined;
|
|
141
|
+
readonly nodeSelectable?: string | undefined;
|
|
142
|
+
readonly expandAll: boolean;
|
|
134
143
|
readonly validations?: readonly {
|
|
135
144
|
readonly message: readonly [{
|
|
136
145
|
readonly locale: "zh";
|
|
@@ -142,15 +151,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
142
151
|
readonly warning?: boolean | undefined;
|
|
143
152
|
readonly when: string;
|
|
144
153
|
}[] | undefined;
|
|
145
|
-
readonly nodeTooltip?: readonly [{
|
|
146
|
-
readonly locale: "zh";
|
|
147
|
-
readonly message: string;
|
|
148
|
-
}, ...{
|
|
149
|
-
readonly locale: "en" | "ja" | "ko";
|
|
150
|
-
readonly message: string;
|
|
151
|
-
}[]] | undefined;
|
|
152
|
-
readonly nodeSelectable?: string | undefined;
|
|
153
|
-
readonly expandAll: boolean;
|
|
154
154
|
}) => any) | undefined;
|
|
155
155
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
156
156
|
declare const _default: typeof __VLS_export;
|
|
@@ -56,6 +56,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
56
56
|
readonly message: string;
|
|
57
57
|
}[]];
|
|
58
58
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
59
|
+
readonly nodeTooltip?: readonly [{
|
|
60
|
+
readonly locale: "zh";
|
|
61
|
+
readonly message: string;
|
|
62
|
+
}, ...{
|
|
63
|
+
readonly locale: "en" | "ja" | "ko";
|
|
64
|
+
readonly message: string;
|
|
65
|
+
}[]] | undefined;
|
|
66
|
+
readonly nodeSelectable?: string | undefined;
|
|
67
|
+
readonly expandAll: boolean;
|
|
59
68
|
readonly validations?: readonly {
|
|
60
69
|
readonly message: readonly [{
|
|
61
70
|
readonly locale: "zh";
|
|
@@ -67,15 +76,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
67
76
|
readonly warning?: boolean | undefined;
|
|
68
77
|
readonly when: string;
|
|
69
78
|
}[] | undefined;
|
|
70
|
-
readonly nodeTooltip?: readonly [{
|
|
71
|
-
readonly locale: "zh";
|
|
72
|
-
readonly message: string;
|
|
73
|
-
}, ...{
|
|
74
|
-
readonly locale: "en" | "ja" | "ko";
|
|
75
|
-
readonly message: string;
|
|
76
|
-
}[]] | undefined;
|
|
77
|
-
readonly nodeSelectable?: string | undefined;
|
|
78
|
-
readonly expandAll: boolean;
|
|
79
79
|
}) => any;
|
|
80
80
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
81
81
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -131,6 +131,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
131
131
|
readonly message: string;
|
|
132
132
|
}[]];
|
|
133
133
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
134
|
+
readonly nodeTooltip?: readonly [{
|
|
135
|
+
readonly locale: "zh";
|
|
136
|
+
readonly message: string;
|
|
137
|
+
}, ...{
|
|
138
|
+
readonly locale: "en" | "ja" | "ko";
|
|
139
|
+
readonly message: string;
|
|
140
|
+
}[]] | undefined;
|
|
141
|
+
readonly nodeSelectable?: string | undefined;
|
|
142
|
+
readonly expandAll: boolean;
|
|
134
143
|
readonly validations?: readonly {
|
|
135
144
|
readonly message: readonly [{
|
|
136
145
|
readonly locale: "zh";
|
|
@@ -142,15 +151,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
142
151
|
readonly warning?: boolean | undefined;
|
|
143
152
|
readonly when: string;
|
|
144
153
|
}[] | undefined;
|
|
145
|
-
readonly nodeTooltip?: readonly [{
|
|
146
|
-
readonly locale: "zh";
|
|
147
|
-
readonly message: string;
|
|
148
|
-
}, ...{
|
|
149
|
-
readonly locale: "en" | "ja" | "ko";
|
|
150
|
-
readonly message: string;
|
|
151
|
-
}[]] | undefined;
|
|
152
|
-
readonly nodeSelectable?: string | undefined;
|
|
153
|
-
readonly expandAll: boolean;
|
|
154
154
|
}) => any) | undefined;
|
|
155
155
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
156
156
|
declare const _default: typeof __VLS_export;
|
|
@@ -53,6 +53,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
53
53
|
readonly message: string;
|
|
54
54
|
}[]];
|
|
55
55
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
56
|
+
readonly nodeTooltip?: readonly [{
|
|
57
|
+
readonly locale: "zh";
|
|
58
|
+
readonly message: string;
|
|
59
|
+
}, ...{
|
|
60
|
+
readonly locale: "en" | "ja" | "ko";
|
|
61
|
+
readonly message: string;
|
|
62
|
+
}[]] | undefined;
|
|
63
|
+
readonly nodeSelectable?: string | undefined;
|
|
64
|
+
readonly expandAll: boolean;
|
|
56
65
|
readonly validations?: readonly {
|
|
57
66
|
readonly message: readonly [{
|
|
58
67
|
readonly locale: "zh";
|
|
@@ -64,15 +73,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
64
73
|
readonly warning?: boolean | undefined;
|
|
65
74
|
readonly when: string;
|
|
66
75
|
}[] | undefined;
|
|
67
|
-
readonly nodeTooltip?: readonly [{
|
|
68
|
-
readonly locale: "zh";
|
|
69
|
-
readonly message: string;
|
|
70
|
-
}, ...{
|
|
71
|
-
readonly locale: "en" | "ja" | "ko";
|
|
72
|
-
readonly message: string;
|
|
73
|
-
}[]] | undefined;
|
|
74
|
-
readonly nodeSelectable?: string | undefined;
|
|
75
|
-
readonly expandAll: boolean;
|
|
76
76
|
}) => any;
|
|
77
77
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
78
78
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -125,6 +125,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
125
125
|
readonly message: string;
|
|
126
126
|
}[]];
|
|
127
127
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
128
|
+
readonly nodeTooltip?: readonly [{
|
|
129
|
+
readonly locale: "zh";
|
|
130
|
+
readonly message: string;
|
|
131
|
+
}, ...{
|
|
132
|
+
readonly locale: "en" | "ja" | "ko";
|
|
133
|
+
readonly message: string;
|
|
134
|
+
}[]] | undefined;
|
|
135
|
+
readonly nodeSelectable?: string | undefined;
|
|
136
|
+
readonly expandAll: boolean;
|
|
128
137
|
readonly validations?: readonly {
|
|
129
138
|
readonly message: readonly [{
|
|
130
139
|
readonly locale: "zh";
|
|
@@ -136,15 +145,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
136
145
|
readonly warning?: boolean | undefined;
|
|
137
146
|
readonly when: string;
|
|
138
147
|
}[] | undefined;
|
|
139
|
-
readonly nodeTooltip?: readonly [{
|
|
140
|
-
readonly locale: "zh";
|
|
141
|
-
readonly message: string;
|
|
142
|
-
}, ...{
|
|
143
|
-
readonly locale: "en" | "ja" | "ko";
|
|
144
|
-
readonly message: string;
|
|
145
|
-
}[]] | undefined;
|
|
146
|
-
readonly nodeSelectable?: string | undefined;
|
|
147
|
-
readonly expandAll: boolean;
|
|
148
148
|
}) => any) | undefined;
|
|
149
149
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
150
150
|
declare const _default: typeof __VLS_export;
|
|
@@ -53,6 +53,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
53
53
|
readonly message: string;
|
|
54
54
|
}[]];
|
|
55
55
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
56
|
+
readonly nodeTooltip?: readonly [{
|
|
57
|
+
readonly locale: "zh";
|
|
58
|
+
readonly message: string;
|
|
59
|
+
}, ...{
|
|
60
|
+
readonly locale: "en" | "ja" | "ko";
|
|
61
|
+
readonly message: string;
|
|
62
|
+
}[]] | undefined;
|
|
63
|
+
readonly nodeSelectable?: string | undefined;
|
|
64
|
+
readonly expandAll: boolean;
|
|
56
65
|
readonly validations?: readonly {
|
|
57
66
|
readonly message: readonly [{
|
|
58
67
|
readonly locale: "zh";
|
|
@@ -64,15 +73,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
64
73
|
readonly warning?: boolean | undefined;
|
|
65
74
|
readonly when: string;
|
|
66
75
|
}[] | undefined;
|
|
67
|
-
readonly nodeTooltip?: readonly [{
|
|
68
|
-
readonly locale: "zh";
|
|
69
|
-
readonly message: string;
|
|
70
|
-
}, ...{
|
|
71
|
-
readonly locale: "en" | "ja" | "ko";
|
|
72
|
-
readonly message: string;
|
|
73
|
-
}[]] | undefined;
|
|
74
|
-
readonly nodeSelectable?: string | undefined;
|
|
75
|
-
readonly expandAll: boolean;
|
|
76
76
|
}) => any;
|
|
77
77
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
78
78
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -125,6 +125,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
125
125
|
readonly message: string;
|
|
126
126
|
}[]];
|
|
127
127
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
128
|
+
readonly nodeTooltip?: readonly [{
|
|
129
|
+
readonly locale: "zh";
|
|
130
|
+
readonly message: string;
|
|
131
|
+
}, ...{
|
|
132
|
+
readonly locale: "en" | "ja" | "ko";
|
|
133
|
+
readonly message: string;
|
|
134
|
+
}[]] | undefined;
|
|
135
|
+
readonly nodeSelectable?: string | undefined;
|
|
136
|
+
readonly expandAll: boolean;
|
|
128
137
|
readonly validations?: readonly {
|
|
129
138
|
readonly message: readonly [{
|
|
130
139
|
readonly locale: "zh";
|
|
@@ -136,15 +145,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
136
145
|
readonly warning?: boolean | undefined;
|
|
137
146
|
readonly when: string;
|
|
138
147
|
}[] | undefined;
|
|
139
|
-
readonly nodeTooltip?: readonly [{
|
|
140
|
-
readonly locale: "zh";
|
|
141
|
-
readonly message: string;
|
|
142
|
-
}, ...{
|
|
143
|
-
readonly locale: "en" | "ja" | "ko";
|
|
144
|
-
readonly message: string;
|
|
145
|
-
}[]] | undefined;
|
|
146
|
-
readonly nodeSelectable?: string | undefined;
|
|
147
|
-
readonly expandAll: boolean;
|
|
148
148
|
}) => any) | undefined;
|
|
149
149
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
150
150
|
declare const _default: typeof __VLS_export;
|
|
@@ -52,6 +52,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
52
52
|
readonly locale: "en" | "ja" | "ko";
|
|
53
53
|
readonly message: string;
|
|
54
54
|
}[]];
|
|
55
|
+
readonly nodeTooltip?: readonly [{
|
|
56
|
+
readonly locale: "zh";
|
|
57
|
+
readonly message: string;
|
|
58
|
+
}, ...{
|
|
59
|
+
readonly locale: "en" | "ja" | "ko";
|
|
60
|
+
readonly message: string;
|
|
61
|
+
}[]] | undefined;
|
|
62
|
+
readonly nodeSelectable?: string | undefined;
|
|
63
|
+
readonly expandAll: boolean;
|
|
55
64
|
readonly validations?: readonly {
|
|
56
65
|
readonly message: readonly [{
|
|
57
66
|
readonly locale: "zh";
|
|
@@ -63,15 +72,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
63
72
|
readonly warning?: boolean | undefined;
|
|
64
73
|
readonly when: string;
|
|
65
74
|
}[] | undefined;
|
|
66
|
-
readonly nodeTooltip?: readonly [{
|
|
67
|
-
readonly locale: "zh";
|
|
68
|
-
readonly message: string;
|
|
69
|
-
}, ...{
|
|
70
|
-
readonly locale: "en" | "ja" | "ko";
|
|
71
|
-
readonly message: string;
|
|
72
|
-
}[]] | undefined;
|
|
73
|
-
readonly nodeSelectable?: string | undefined;
|
|
74
|
-
readonly expandAll: boolean;
|
|
75
75
|
}) => any;
|
|
76
76
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
77
77
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -123,6 +123,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
123
123
|
readonly locale: "en" | "ja" | "ko";
|
|
124
124
|
readonly message: string;
|
|
125
125
|
}[]];
|
|
126
|
+
readonly nodeTooltip?: readonly [{
|
|
127
|
+
readonly locale: "zh";
|
|
128
|
+
readonly message: string;
|
|
129
|
+
}, ...{
|
|
130
|
+
readonly locale: "en" | "ja" | "ko";
|
|
131
|
+
readonly message: string;
|
|
132
|
+
}[]] | undefined;
|
|
133
|
+
readonly nodeSelectable?: string | undefined;
|
|
134
|
+
readonly expandAll: boolean;
|
|
126
135
|
readonly validations?: readonly {
|
|
127
136
|
readonly message: readonly [{
|
|
128
137
|
readonly locale: "zh";
|
|
@@ -134,15 +143,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
134
143
|
readonly warning?: boolean | undefined;
|
|
135
144
|
readonly when: string;
|
|
136
145
|
}[] | undefined;
|
|
137
|
-
readonly nodeTooltip?: readonly [{
|
|
138
|
-
readonly locale: "zh";
|
|
139
|
-
readonly message: string;
|
|
140
|
-
}, ...{
|
|
141
|
-
readonly locale: "en" | "ja" | "ko";
|
|
142
|
-
readonly message: string;
|
|
143
|
-
}[]] | undefined;
|
|
144
|
-
readonly nodeSelectable?: string | undefined;
|
|
145
|
-
readonly expandAll: boolean;
|
|
146
146
|
}) => any) | undefined;
|
|
147
147
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
148
148
|
declare const _default: typeof __VLS_export;
|
|
@@ -52,6 +52,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
52
52
|
readonly locale: "en" | "ja" | "ko";
|
|
53
53
|
readonly message: string;
|
|
54
54
|
}[]];
|
|
55
|
+
readonly nodeTooltip?: readonly [{
|
|
56
|
+
readonly locale: "zh";
|
|
57
|
+
readonly message: string;
|
|
58
|
+
}, ...{
|
|
59
|
+
readonly locale: "en" | "ja" | "ko";
|
|
60
|
+
readonly message: string;
|
|
61
|
+
}[]] | undefined;
|
|
62
|
+
readonly nodeSelectable?: string | undefined;
|
|
63
|
+
readonly expandAll: boolean;
|
|
55
64
|
readonly validations?: readonly {
|
|
56
65
|
readonly message: readonly [{
|
|
57
66
|
readonly locale: "zh";
|
|
@@ -63,15 +72,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
63
72
|
readonly warning?: boolean | undefined;
|
|
64
73
|
readonly when: string;
|
|
65
74
|
}[] | undefined;
|
|
66
|
-
readonly nodeTooltip?: readonly [{
|
|
67
|
-
readonly locale: "zh";
|
|
68
|
-
readonly message: string;
|
|
69
|
-
}, ...{
|
|
70
|
-
readonly locale: "en" | "ja" | "ko";
|
|
71
|
-
readonly message: string;
|
|
72
|
-
}[]] | undefined;
|
|
73
|
-
readonly nodeSelectable?: string | undefined;
|
|
74
|
-
readonly expandAll: boolean;
|
|
75
75
|
}) => any;
|
|
76
76
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
77
77
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -123,6 +123,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
123
123
|
readonly locale: "en" | "ja" | "ko";
|
|
124
124
|
readonly message: string;
|
|
125
125
|
}[]];
|
|
126
|
+
readonly nodeTooltip?: readonly [{
|
|
127
|
+
readonly locale: "zh";
|
|
128
|
+
readonly message: string;
|
|
129
|
+
}, ...{
|
|
130
|
+
readonly locale: "en" | "ja" | "ko";
|
|
131
|
+
readonly message: string;
|
|
132
|
+
}[]] | undefined;
|
|
133
|
+
readonly nodeSelectable?: string | undefined;
|
|
134
|
+
readonly expandAll: boolean;
|
|
126
135
|
readonly validations?: readonly {
|
|
127
136
|
readonly message: readonly [{
|
|
128
137
|
readonly locale: "zh";
|
|
@@ -134,15 +143,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
134
143
|
readonly warning?: boolean | undefined;
|
|
135
144
|
readonly when: string;
|
|
136
145
|
}[] | undefined;
|
|
137
|
-
readonly nodeTooltip?: readonly [{
|
|
138
|
-
readonly locale: "zh";
|
|
139
|
-
readonly message: string;
|
|
140
|
-
}, ...{
|
|
141
|
-
readonly locale: "en" | "ja" | "ko";
|
|
142
|
-
readonly message: string;
|
|
143
|
-
}[]] | undefined;
|
|
144
|
-
readonly nodeSelectable?: string | undefined;
|
|
145
|
-
readonly expandAll: boolean;
|
|
146
146
|
}) => any) | undefined;
|
|
147
147
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
148
148
|
declare const _default: typeof __VLS_export;
|
|
@@ -54,6 +54,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
54
54
|
readonly message: string;
|
|
55
55
|
}[]];
|
|
56
56
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
57
|
+
readonly nodeTooltip?: readonly [{
|
|
58
|
+
readonly locale: "zh";
|
|
59
|
+
readonly message: string;
|
|
60
|
+
}, ...{
|
|
61
|
+
readonly locale: "en" | "ja" | "ko";
|
|
62
|
+
readonly message: string;
|
|
63
|
+
}[]] | undefined;
|
|
64
|
+
readonly nodeSelectable?: string | undefined;
|
|
65
|
+
readonly expandAll: boolean;
|
|
57
66
|
readonly validations?: readonly {
|
|
58
67
|
readonly message: readonly [{
|
|
59
68
|
readonly locale: "zh";
|
|
@@ -65,15 +74,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
65
74
|
readonly warning?: boolean | undefined;
|
|
66
75
|
readonly when: string;
|
|
67
76
|
}[] | undefined;
|
|
68
|
-
readonly nodeTooltip?: readonly [{
|
|
69
|
-
readonly locale: "zh";
|
|
70
|
-
readonly message: string;
|
|
71
|
-
}, ...{
|
|
72
|
-
readonly locale: "en" | "ja" | "ko";
|
|
73
|
-
readonly message: string;
|
|
74
|
-
}[]] | undefined;
|
|
75
|
-
readonly nodeSelectable?: string | undefined;
|
|
76
|
-
readonly expandAll: boolean;
|
|
77
77
|
}) => any;
|
|
78
78
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
79
79
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -127,6 +127,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
127
127
|
readonly message: string;
|
|
128
128
|
}[]];
|
|
129
129
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
130
|
+
readonly nodeTooltip?: readonly [{
|
|
131
|
+
readonly locale: "zh";
|
|
132
|
+
readonly message: string;
|
|
133
|
+
}, ...{
|
|
134
|
+
readonly locale: "en" | "ja" | "ko";
|
|
135
|
+
readonly message: string;
|
|
136
|
+
}[]] | undefined;
|
|
137
|
+
readonly nodeSelectable?: string | undefined;
|
|
138
|
+
readonly expandAll: boolean;
|
|
130
139
|
readonly validations?: readonly {
|
|
131
140
|
readonly message: readonly [{
|
|
132
141
|
readonly locale: "zh";
|
|
@@ -138,15 +147,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
138
147
|
readonly warning?: boolean | undefined;
|
|
139
148
|
readonly when: string;
|
|
140
149
|
}[] | undefined;
|
|
141
|
-
readonly nodeTooltip?: readonly [{
|
|
142
|
-
readonly locale: "zh";
|
|
143
|
-
readonly message: string;
|
|
144
|
-
}, ...{
|
|
145
|
-
readonly locale: "en" | "ja" | "ko";
|
|
146
|
-
readonly message: string;
|
|
147
|
-
}[]] | undefined;
|
|
148
|
-
readonly nodeSelectable?: string | undefined;
|
|
149
|
-
readonly expandAll: boolean;
|
|
150
150
|
}) => any) | undefined;
|
|
151
151
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
152
152
|
declare const _default: typeof __VLS_export;
|
|
@@ -54,6 +54,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
54
54
|
readonly message: string;
|
|
55
55
|
}[]];
|
|
56
56
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
57
|
+
readonly nodeTooltip?: readonly [{
|
|
58
|
+
readonly locale: "zh";
|
|
59
|
+
readonly message: string;
|
|
60
|
+
}, ...{
|
|
61
|
+
readonly locale: "en" | "ja" | "ko";
|
|
62
|
+
readonly message: string;
|
|
63
|
+
}[]] | undefined;
|
|
64
|
+
readonly nodeSelectable?: string | undefined;
|
|
65
|
+
readonly expandAll: boolean;
|
|
57
66
|
readonly validations?: readonly {
|
|
58
67
|
readonly message: readonly [{
|
|
59
68
|
readonly locale: "zh";
|
|
@@ -65,15 +74,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
65
74
|
readonly warning?: boolean | undefined;
|
|
66
75
|
readonly when: string;
|
|
67
76
|
}[] | undefined;
|
|
68
|
-
readonly nodeTooltip?: readonly [{
|
|
69
|
-
readonly locale: "zh";
|
|
70
|
-
readonly message: string;
|
|
71
|
-
}, ...{
|
|
72
|
-
readonly locale: "en" | "ja" | "ko";
|
|
73
|
-
readonly message: string;
|
|
74
|
-
}[]] | undefined;
|
|
75
|
-
readonly nodeSelectable?: string | undefined;
|
|
76
|
-
readonly expandAll: boolean;
|
|
77
77
|
}) => any;
|
|
78
78
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
79
79
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -127,6 +127,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
127
127
|
readonly message: string;
|
|
128
128
|
}[]];
|
|
129
129
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
130
|
+
readonly nodeTooltip?: readonly [{
|
|
131
|
+
readonly locale: "zh";
|
|
132
|
+
readonly message: string;
|
|
133
|
+
}, ...{
|
|
134
|
+
readonly locale: "en" | "ja" | "ko";
|
|
135
|
+
readonly message: string;
|
|
136
|
+
}[]] | undefined;
|
|
137
|
+
readonly nodeSelectable?: string | undefined;
|
|
138
|
+
readonly expandAll: boolean;
|
|
130
139
|
readonly validations?: readonly {
|
|
131
140
|
readonly message: readonly [{
|
|
132
141
|
readonly locale: "zh";
|
|
@@ -138,15 +147,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
138
147
|
readonly warning?: boolean | undefined;
|
|
139
148
|
readonly when: string;
|
|
140
149
|
}[] | undefined;
|
|
141
|
-
readonly nodeTooltip?: readonly [{
|
|
142
|
-
readonly locale: "zh";
|
|
143
|
-
readonly message: string;
|
|
144
|
-
}, ...{
|
|
145
|
-
readonly locale: "en" | "ja" | "ko";
|
|
146
|
-
readonly message: string;
|
|
147
|
-
}[]] | undefined;
|
|
148
|
-
readonly nodeSelectable?: string | undefined;
|
|
149
|
-
readonly expandAll: boolean;
|
|
150
150
|
}) => any) | undefined;
|
|
151
151
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
152
152
|
declare const _default: typeof __VLS_export;
|
|
@@ -53,6 +53,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
53
53
|
readonly locale: "en" | "ja" | "ko";
|
|
54
54
|
readonly message: string;
|
|
55
55
|
}[]];
|
|
56
|
+
readonly nodeTooltip?: readonly [{
|
|
57
|
+
readonly locale: "zh";
|
|
58
|
+
readonly message: string;
|
|
59
|
+
}, ...{
|
|
60
|
+
readonly locale: "en" | "ja" | "ko";
|
|
61
|
+
readonly message: string;
|
|
62
|
+
}[]] | undefined;
|
|
63
|
+
readonly nodeSelectable?: string | undefined;
|
|
64
|
+
readonly expandAll: boolean;
|
|
56
65
|
readonly validations?: readonly {
|
|
57
66
|
readonly message: readonly [{
|
|
58
67
|
readonly locale: "zh";
|
|
@@ -64,15 +73,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
64
73
|
readonly warning?: boolean | undefined;
|
|
65
74
|
readonly when: string;
|
|
66
75
|
}[] | undefined;
|
|
67
|
-
readonly nodeTooltip?: readonly [{
|
|
68
|
-
readonly locale: "zh";
|
|
69
|
-
readonly message: string;
|
|
70
|
-
}, ...{
|
|
71
|
-
readonly locale: "en" | "ja" | "ko";
|
|
72
|
-
readonly message: string;
|
|
73
|
-
}[]] | undefined;
|
|
74
|
-
readonly nodeSelectable?: string | undefined;
|
|
75
|
-
readonly expandAll: boolean;
|
|
76
76
|
}) => any;
|
|
77
77
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
78
78
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -125,6 +125,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
125
125
|
readonly locale: "en" | "ja" | "ko";
|
|
126
126
|
readonly message: string;
|
|
127
127
|
}[]];
|
|
128
|
+
readonly nodeTooltip?: readonly [{
|
|
129
|
+
readonly locale: "zh";
|
|
130
|
+
readonly message: string;
|
|
131
|
+
}, ...{
|
|
132
|
+
readonly locale: "en" | "ja" | "ko";
|
|
133
|
+
readonly message: string;
|
|
134
|
+
}[]] | undefined;
|
|
135
|
+
readonly nodeSelectable?: string | undefined;
|
|
136
|
+
readonly expandAll: boolean;
|
|
128
137
|
readonly validations?: readonly {
|
|
129
138
|
readonly message: readonly [{
|
|
130
139
|
readonly locale: "zh";
|
|
@@ -136,15 +145,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
136
145
|
readonly warning?: boolean | undefined;
|
|
137
146
|
readonly when: string;
|
|
138
147
|
}[] | undefined;
|
|
139
|
-
readonly nodeTooltip?: readonly [{
|
|
140
|
-
readonly locale: "zh";
|
|
141
|
-
readonly message: string;
|
|
142
|
-
}, ...{
|
|
143
|
-
readonly locale: "en" | "ja" | "ko";
|
|
144
|
-
readonly message: string;
|
|
145
|
-
}[]] | undefined;
|
|
146
|
-
readonly nodeSelectable?: string | undefined;
|
|
147
|
-
readonly expandAll: boolean;
|
|
148
148
|
}) => any) | undefined;
|
|
149
149
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
150
150
|
declare const _default: typeof __VLS_export;
|
|
@@ -53,6 +53,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
53
53
|
readonly locale: "en" | "ja" | "ko";
|
|
54
54
|
readonly message: string;
|
|
55
55
|
}[]];
|
|
56
|
+
readonly nodeTooltip?: readonly [{
|
|
57
|
+
readonly locale: "zh";
|
|
58
|
+
readonly message: string;
|
|
59
|
+
}, ...{
|
|
60
|
+
readonly locale: "en" | "ja" | "ko";
|
|
61
|
+
readonly message: string;
|
|
62
|
+
}[]] | undefined;
|
|
63
|
+
readonly nodeSelectable?: string | undefined;
|
|
64
|
+
readonly expandAll: boolean;
|
|
56
65
|
readonly validations?: readonly {
|
|
57
66
|
readonly message: readonly [{
|
|
58
67
|
readonly locale: "zh";
|
|
@@ -64,15 +73,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
64
73
|
readonly warning?: boolean | undefined;
|
|
65
74
|
readonly when: string;
|
|
66
75
|
}[] | undefined;
|
|
67
|
-
readonly nodeTooltip?: readonly [{
|
|
68
|
-
readonly locale: "zh";
|
|
69
|
-
readonly message: string;
|
|
70
|
-
}, ...{
|
|
71
|
-
readonly locale: "en" | "ja" | "ko";
|
|
72
|
-
readonly message: string;
|
|
73
|
-
}[]] | undefined;
|
|
74
|
-
readonly nodeSelectable?: string | undefined;
|
|
75
|
-
readonly expandAll: boolean;
|
|
76
76
|
}) => any;
|
|
77
77
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
78
78
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -125,6 +125,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
125
125
|
readonly locale: "en" | "ja" | "ko";
|
|
126
126
|
readonly message: string;
|
|
127
127
|
}[]];
|
|
128
|
+
readonly nodeTooltip?: readonly [{
|
|
129
|
+
readonly locale: "zh";
|
|
130
|
+
readonly message: string;
|
|
131
|
+
}, ...{
|
|
132
|
+
readonly locale: "en" | "ja" | "ko";
|
|
133
|
+
readonly message: string;
|
|
134
|
+
}[]] | undefined;
|
|
135
|
+
readonly nodeSelectable?: string | undefined;
|
|
136
|
+
readonly expandAll: boolean;
|
|
128
137
|
readonly validations?: readonly {
|
|
129
138
|
readonly message: readonly [{
|
|
130
139
|
readonly locale: "zh";
|
|
@@ -136,15 +145,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
136
145
|
readonly warning?: boolean | undefined;
|
|
137
146
|
readonly when: string;
|
|
138
147
|
}[] | undefined;
|
|
139
|
-
readonly nodeTooltip?: readonly [{
|
|
140
|
-
readonly locale: "zh";
|
|
141
|
-
readonly message: string;
|
|
142
|
-
}, ...{
|
|
143
|
-
readonly locale: "en" | "ja" | "ko";
|
|
144
|
-
readonly message: string;
|
|
145
|
-
}[]] | undefined;
|
|
146
|
-
readonly nodeSelectable?: string | undefined;
|
|
147
|
-
readonly expandAll: boolean;
|
|
148
148
|
}) => any) | undefined;
|
|
149
149
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
150
150
|
declare const _default: typeof __VLS_export;
|
|
@@ -56,6 +56,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
56
56
|
readonly message: string;
|
|
57
57
|
}[]];
|
|
58
58
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
59
|
+
readonly nodeTooltip?: readonly [{
|
|
60
|
+
readonly locale: "zh";
|
|
61
|
+
readonly message: string;
|
|
62
|
+
}, ...{
|
|
63
|
+
readonly locale: "en" | "ja" | "ko";
|
|
64
|
+
readonly message: string;
|
|
65
|
+
}[]] | undefined;
|
|
66
|
+
readonly nodeSelectable?: string | undefined;
|
|
67
|
+
readonly expandAll: boolean;
|
|
59
68
|
readonly validations?: readonly {
|
|
60
69
|
readonly message: readonly [{
|
|
61
70
|
readonly locale: "zh";
|
|
@@ -67,15 +76,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
67
76
|
readonly warning?: boolean | undefined;
|
|
68
77
|
readonly when: string;
|
|
69
78
|
}[] | undefined;
|
|
70
|
-
readonly nodeTooltip?: readonly [{
|
|
71
|
-
readonly locale: "zh";
|
|
72
|
-
readonly message: string;
|
|
73
|
-
}, ...{
|
|
74
|
-
readonly locale: "en" | "ja" | "ko";
|
|
75
|
-
readonly message: string;
|
|
76
|
-
}[]] | undefined;
|
|
77
|
-
readonly nodeSelectable?: string | undefined;
|
|
78
|
-
readonly expandAll: boolean;
|
|
79
79
|
}) => any;
|
|
80
80
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
81
81
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -131,6 +131,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
131
131
|
readonly message: string;
|
|
132
132
|
}[]];
|
|
133
133
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
134
|
+
readonly nodeTooltip?: readonly [{
|
|
135
|
+
readonly locale: "zh";
|
|
136
|
+
readonly message: string;
|
|
137
|
+
}, ...{
|
|
138
|
+
readonly locale: "en" | "ja" | "ko";
|
|
139
|
+
readonly message: string;
|
|
140
|
+
}[]] | undefined;
|
|
141
|
+
readonly nodeSelectable?: string | undefined;
|
|
142
|
+
readonly expandAll: boolean;
|
|
134
143
|
readonly validations?: readonly {
|
|
135
144
|
readonly message: readonly [{
|
|
136
145
|
readonly locale: "zh";
|
|
@@ -142,15 +151,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
142
151
|
readonly warning?: boolean | undefined;
|
|
143
152
|
readonly when: string;
|
|
144
153
|
}[] | undefined;
|
|
145
|
-
readonly nodeTooltip?: readonly [{
|
|
146
|
-
readonly locale: "zh";
|
|
147
|
-
readonly message: string;
|
|
148
|
-
}, ...{
|
|
149
|
-
readonly locale: "en" | "ja" | "ko";
|
|
150
|
-
readonly message: string;
|
|
151
|
-
}[]] | undefined;
|
|
152
|
-
readonly nodeSelectable?: string | undefined;
|
|
153
|
-
readonly expandAll: boolean;
|
|
154
154
|
}) => any) | undefined;
|
|
155
155
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
156
156
|
declare const _default: typeof __VLS_export;
|
|
@@ -56,6 +56,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
56
56
|
readonly message: string;
|
|
57
57
|
}[]];
|
|
58
58
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
59
|
+
readonly nodeTooltip?: readonly [{
|
|
60
|
+
readonly locale: "zh";
|
|
61
|
+
readonly message: string;
|
|
62
|
+
}, ...{
|
|
63
|
+
readonly locale: "en" | "ja" | "ko";
|
|
64
|
+
readonly message: string;
|
|
65
|
+
}[]] | undefined;
|
|
66
|
+
readonly nodeSelectable?: string | undefined;
|
|
67
|
+
readonly expandAll: boolean;
|
|
59
68
|
readonly validations?: readonly {
|
|
60
69
|
readonly message: readonly [{
|
|
61
70
|
readonly locale: "zh";
|
|
@@ -67,15 +76,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
67
76
|
readonly warning?: boolean | undefined;
|
|
68
77
|
readonly when: string;
|
|
69
78
|
}[] | undefined;
|
|
70
|
-
readonly nodeTooltip?: readonly [{
|
|
71
|
-
readonly locale: "zh";
|
|
72
|
-
readonly message: string;
|
|
73
|
-
}, ...{
|
|
74
|
-
readonly locale: "en" | "ja" | "ko";
|
|
75
|
-
readonly message: string;
|
|
76
|
-
}[]] | undefined;
|
|
77
|
-
readonly nodeSelectable?: string | undefined;
|
|
78
|
-
readonly expandAll: boolean;
|
|
79
79
|
}) => any;
|
|
80
80
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
81
81
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -131,6 +131,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
131
131
|
readonly message: string;
|
|
132
132
|
}[]];
|
|
133
133
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
134
|
+
readonly nodeTooltip?: readonly [{
|
|
135
|
+
readonly locale: "zh";
|
|
136
|
+
readonly message: string;
|
|
137
|
+
}, ...{
|
|
138
|
+
readonly locale: "en" | "ja" | "ko";
|
|
139
|
+
readonly message: string;
|
|
140
|
+
}[]] | undefined;
|
|
141
|
+
readonly nodeSelectable?: string | undefined;
|
|
142
|
+
readonly expandAll: boolean;
|
|
134
143
|
readonly validations?: readonly {
|
|
135
144
|
readonly message: readonly [{
|
|
136
145
|
readonly locale: "zh";
|
|
@@ -142,15 +151,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
142
151
|
readonly warning?: boolean | undefined;
|
|
143
152
|
readonly when: string;
|
|
144
153
|
}[] | undefined;
|
|
145
|
-
readonly nodeTooltip?: readonly [{
|
|
146
|
-
readonly locale: "zh";
|
|
147
|
-
readonly message: string;
|
|
148
|
-
}, ...{
|
|
149
|
-
readonly locale: "en" | "ja" | "ko";
|
|
150
|
-
readonly message: string;
|
|
151
|
-
}[]] | undefined;
|
|
152
|
-
readonly nodeSelectable?: string | undefined;
|
|
153
|
-
readonly expandAll: boolean;
|
|
154
154
|
}) => any) | undefined;
|
|
155
155
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
156
156
|
declare const _default: typeof __VLS_export;
|
|
@@ -55,6 +55,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
55
55
|
readonly locale: "en" | "ja" | "ko";
|
|
56
56
|
readonly message: string;
|
|
57
57
|
}[]];
|
|
58
|
+
readonly nodeTooltip?: readonly [{
|
|
59
|
+
readonly locale: "zh";
|
|
60
|
+
readonly message: string;
|
|
61
|
+
}, ...{
|
|
62
|
+
readonly locale: "en" | "ja" | "ko";
|
|
63
|
+
readonly message: string;
|
|
64
|
+
}[]] | undefined;
|
|
65
|
+
readonly nodeSelectable?: string | undefined;
|
|
66
|
+
readonly expandAll: boolean;
|
|
58
67
|
readonly validations?: readonly {
|
|
59
68
|
readonly message: readonly [{
|
|
60
69
|
readonly locale: "zh";
|
|
@@ -66,15 +75,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
66
75
|
readonly warning?: boolean | undefined;
|
|
67
76
|
readonly when: string;
|
|
68
77
|
}[] | undefined;
|
|
69
|
-
readonly nodeTooltip?: readonly [{
|
|
70
|
-
readonly locale: "zh";
|
|
71
|
-
readonly message: string;
|
|
72
|
-
}, ...{
|
|
73
|
-
readonly locale: "en" | "ja" | "ko";
|
|
74
|
-
readonly message: string;
|
|
75
|
-
}[]] | undefined;
|
|
76
|
-
readonly nodeSelectable?: string | undefined;
|
|
77
|
-
readonly expandAll: boolean;
|
|
78
78
|
}) => any;
|
|
79
79
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
80
80
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -129,6 +129,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
129
129
|
readonly locale: "en" | "ja" | "ko";
|
|
130
130
|
readonly message: string;
|
|
131
131
|
}[]];
|
|
132
|
+
readonly nodeTooltip?: readonly [{
|
|
133
|
+
readonly locale: "zh";
|
|
134
|
+
readonly message: string;
|
|
135
|
+
}, ...{
|
|
136
|
+
readonly locale: "en" | "ja" | "ko";
|
|
137
|
+
readonly message: string;
|
|
138
|
+
}[]] | undefined;
|
|
139
|
+
readonly nodeSelectable?: string | undefined;
|
|
140
|
+
readonly expandAll: boolean;
|
|
132
141
|
readonly validations?: readonly {
|
|
133
142
|
readonly message: readonly [{
|
|
134
143
|
readonly locale: "zh";
|
|
@@ -140,15 +149,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
140
149
|
readonly warning?: boolean | undefined;
|
|
141
150
|
readonly when: string;
|
|
142
151
|
}[] | undefined;
|
|
143
|
-
readonly nodeTooltip?: readonly [{
|
|
144
|
-
readonly locale: "zh";
|
|
145
|
-
readonly message: string;
|
|
146
|
-
}, ...{
|
|
147
|
-
readonly locale: "en" | "ja" | "ko";
|
|
148
|
-
readonly message: string;
|
|
149
|
-
}[]] | undefined;
|
|
150
|
-
readonly nodeSelectable?: string | undefined;
|
|
151
|
-
readonly expandAll: boolean;
|
|
152
152
|
}) => any) | undefined;
|
|
153
153
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
154
154
|
declare const _default: typeof __VLS_export;
|
|
@@ -55,6 +55,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
55
55
|
readonly locale: "en" | "ja" | "ko";
|
|
56
56
|
readonly message: string;
|
|
57
57
|
}[]];
|
|
58
|
+
readonly nodeTooltip?: readonly [{
|
|
59
|
+
readonly locale: "zh";
|
|
60
|
+
readonly message: string;
|
|
61
|
+
}, ...{
|
|
62
|
+
readonly locale: "en" | "ja" | "ko";
|
|
63
|
+
readonly message: string;
|
|
64
|
+
}[]] | undefined;
|
|
65
|
+
readonly nodeSelectable?: string | undefined;
|
|
66
|
+
readonly expandAll: boolean;
|
|
58
67
|
readonly validations?: readonly {
|
|
59
68
|
readonly message: readonly [{
|
|
60
69
|
readonly locale: "zh";
|
|
@@ -66,15 +75,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
66
75
|
readonly warning?: boolean | undefined;
|
|
67
76
|
readonly when: string;
|
|
68
77
|
}[] | undefined;
|
|
69
|
-
readonly nodeTooltip?: readonly [{
|
|
70
|
-
readonly locale: "zh";
|
|
71
|
-
readonly message: string;
|
|
72
|
-
}, ...{
|
|
73
|
-
readonly locale: "en" | "ja" | "ko";
|
|
74
|
-
readonly message: string;
|
|
75
|
-
}[]] | undefined;
|
|
76
|
-
readonly nodeSelectable?: string | undefined;
|
|
77
|
-
readonly expandAll: boolean;
|
|
78
78
|
}) => any;
|
|
79
79
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
80
80
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -129,6 +129,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
129
129
|
readonly locale: "en" | "ja" | "ko";
|
|
130
130
|
readonly message: string;
|
|
131
131
|
}[]];
|
|
132
|
+
readonly nodeTooltip?: readonly [{
|
|
133
|
+
readonly locale: "zh";
|
|
134
|
+
readonly message: string;
|
|
135
|
+
}, ...{
|
|
136
|
+
readonly locale: "en" | "ja" | "ko";
|
|
137
|
+
readonly message: string;
|
|
138
|
+
}[]] | undefined;
|
|
139
|
+
readonly nodeSelectable?: string | undefined;
|
|
140
|
+
readonly expandAll: boolean;
|
|
132
141
|
readonly validations?: readonly {
|
|
133
142
|
readonly message: readonly [{
|
|
134
143
|
readonly locale: "zh";
|
|
@@ -140,15 +149,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
140
149
|
readonly warning?: boolean | undefined;
|
|
141
150
|
readonly when: string;
|
|
142
151
|
}[] | undefined;
|
|
143
|
-
readonly nodeTooltip?: readonly [{
|
|
144
|
-
readonly locale: "zh";
|
|
145
|
-
readonly message: string;
|
|
146
|
-
}, ...{
|
|
147
|
-
readonly locale: "en" | "ja" | "ko";
|
|
148
|
-
readonly message: string;
|
|
149
|
-
}[]] | undefined;
|
|
150
|
-
readonly nodeSelectable?: string | undefined;
|
|
151
|
-
readonly expandAll: boolean;
|
|
152
152
|
}) => any) | undefined;
|
|
153
153
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
154
154
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
2
|
import { computed, ref, watch } from "vue";
|
|
3
3
|
import { formatValidationError } from "../config/utils/validation-error.js";
|
|
4
|
+
import { findDanglingLinkages, formatDanglingLinkages } from "../config/utils/linkage.js";
|
|
4
5
|
import { createExpressionValidityRegistry, provideExpressionValidity } from "../ui/expression-editor/index.js";
|
|
5
6
|
import { SidebarConfig } from "./schema.js";
|
|
6
7
|
function deepClone(value) {
|
|
@@ -25,6 +26,11 @@ export function useSidebarEditor(model, options = {}) {
|
|
|
25
26
|
validationError.value = "\u5B58\u5728\u65E0\u6548\u7684\u8DE8\u5C42\u4F5C\u7528\u57DF\u5F15\u7528\uFF0C\u8BF7\u4FEE\u6B63\u6807\u7EA2\u7684\u8868\u8FBE\u5F0F\u540E\u518D\u4FDD\u5B58";
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
29
|
+
const dangling = findDanglingLinkages(decoded);
|
|
30
|
+
if (dangling.length > 0) {
|
|
31
|
+
validationError.value = formatDanglingLinkages(dangling, decoded, () => void 0);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
28
34
|
validationError.value = null;
|
|
29
35
|
model.value = decoded;
|
|
30
36
|
baseline.value = deepClone(decoded);
|
|
@@ -59,7 +59,7 @@ function configureMedia(configure) {
|
|
|
59
59
|
return (env) => {
|
|
60
60
|
env.registerFunction(
|
|
61
61
|
"media(string): bool",
|
|
62
|
-
(
|
|
62
|
+
(q) => typeof window !== "undefined" && window.matchMedia(q).matches,
|
|
63
63
|
{ description: "\u5339\u914D CSS \u5A92\u4F53\u67E5\u8BE2\uFF0C\u7B49\u4EF7\u4E8E `window.matchMedia(q).matches`\uFF1BSSR \u4E0A\u4E0B\u6587\u8FD4\u56DE `false`" }
|
|
64
64
|
);
|
|
65
65
|
configure(env);
|
|
@@ -76,7 +76,7 @@ export function LayoutSet(configure) {
|
|
|
76
76
|
resultType: "bool"
|
|
77
77
|
}).annotations({
|
|
78
78
|
title: "\u5339\u914D\u6761\u4EF6",
|
|
79
|
-
description: "\u8FD4\u56DE `bool` \u7684 CEL \u8868\u8FBE\u5F0F\
|
|
79
|
+
description: "\u8FD4\u56DE `bool` \u7684 CEL \u8868\u8FBE\u5F0F\uFF1B\u968F\u89C6\u53E3\u53D8\u5316\u4E0E\u6240\u5F15\u7528\u7684\u54CD\u5E94\u5F0F\u6570\u636E\u81EA\u52A8\u91CD\u65B0\u6C42\u503C\uFF0C\u7A7A\u8868\u793A\u65E0\u6761\u4EF6\u5339\u914D\u3002\u53EF\u7528 `media('(min-width: 1024px)')` \u5305\u88C5 CSS \u5A92\u4F53\u67E5\u8BE2\u3002"
|
|
80
80
|
})),
|
|
81
81
|
layout: Layout
|
|
82
82
|
}).annotations({
|
|
@@ -4,6 +4,7 @@ import { computed } from "vue";
|
|
|
4
4
|
import { cel as _rawCel } from "../utils/cel";
|
|
5
5
|
import { celBindings, injectCELContext } from "../utils/cel-context";
|
|
6
6
|
import { DEFAULT_GAP } from "./layout";
|
|
7
|
+
import { useViewportRevision } from "./viewport";
|
|
7
8
|
defineOptions({ name: "ShwfedSlotRenderer" });
|
|
8
9
|
const props = defineProps({
|
|
9
10
|
slotValue: { type: Object, required: true },
|
|
@@ -25,7 +26,11 @@ function pickLayout(sets) {
|
|
|
25
26
|
}
|
|
26
27
|
return sets[sets.length - 1];
|
|
27
28
|
}
|
|
28
|
-
const
|
|
29
|
+
const viewportRevision = useViewportRevision();
|
|
30
|
+
const activeLayout = computed(() => {
|
|
31
|
+
void viewportRevision.value;
|
|
32
|
+
return pickLayout(props.slotValue.layouts);
|
|
33
|
+
});
|
|
29
34
|
const warnedMissing = /* @__PURE__ */ new Set();
|
|
30
35
|
const placedBlocks = computed(() => {
|
|
31
36
|
const layout = activeLayout.value?.layout;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* A reactive counter that increments on any viewport change (resize /
|
|
4
|
+
* orientation). Read its `.value` inside a `computed` to make that computed
|
|
5
|
+
* re-evaluate when the viewport changes.
|
|
6
|
+
*
|
|
7
|
+
* This is the reactive dependency a `media('…')` CEL query otherwise lacks:
|
|
8
|
+
* `window.matchMedia(q).matches` is a one-shot, untracked read, so a layout
|
|
9
|
+
* gated on `media('(max-width: 900px)')` would be frozen at its mount-time
|
|
10
|
+
* value and never re-select when the window is resized (or DevTools docked).
|
|
11
|
+
* Touching this ref inside the selection `computed` closes that gap.
|
|
12
|
+
*
|
|
13
|
+
* SSR-safe and self-cleaning: `useEventListener` no-ops without a `window` and
|
|
14
|
+
* detaches automatically when the owning component's effect scope disposes.
|
|
15
|
+
*/
|
|
16
|
+
export declare function useViewportRevision(): Ref<number>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ref } from "vue";
|
|
2
|
+
import { useEventListener } from "@vueuse/core";
|
|
3
|
+
export function useViewportRevision() {
|
|
4
|
+
const revision = ref(0);
|
|
5
|
+
const bump = () => {
|
|
6
|
+
revision.value++;
|
|
7
|
+
};
|
|
8
|
+
useEventListener("resize", bump, { passive: true });
|
|
9
|
+
useEventListener("orientationchange", bump, { passive: true });
|
|
10
|
+
return revision;
|
|
11
|
+
}
|
|
@@ -22,7 +22,12 @@ function unwrapCelValue(value) {
|
|
|
22
22
|
const env = new Environment({ unlistedVariablesAreDyn: true });
|
|
23
23
|
env.registerFunction(
|
|
24
24
|
"media(string): bool",
|
|
25
|
-
(
|
|
25
|
+
// Global (non-method) function: the evaluator passes the CEL argument as the
|
|
26
|
+
// first parameter (no receiver/`self` prepended — that shape is method-only,
|
|
27
|
+
// as in `list<number>.sum()` below). A leading `_self` here would bind the
|
|
28
|
+
// query string to `_self` and the AST node to `q`, so `matchMedia` would
|
|
29
|
+
// stringify the AST and never match — the "media always false" bug.
|
|
30
|
+
(q) => typeof window !== "undefined" && window.matchMedia(q).matches
|
|
26
31
|
);
|
|
27
32
|
env.registerFunction(
|
|
28
33
|
"list<number>.sum(): number",
|