@shwfed/config 2.3.13 → 2.3.15
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 +267 -3
- package/dist/module.json +1 -1
- package/dist/preview/assets/{config-0UIjgMSM.js → config-Ccc91IuE.js} +1 -1
- package/dist/preview/assets/{config-f56G9OU7.js → config-Cu4YCf3Q.js} +1 -1
- package/dist/preview/assets/{config-9eu0BvKT.js → config-D1_kk2wE.js} +1 -1
- package/dist/preview/assets/{config-B1jKkIYg.js → config-DSUfhE8f.js} +1 -1
- package/dist/preview/assets/{config-DoQjG5TI.js → config-Dn_aNwUy.js} +1 -1
- package/dist/preview/assets/{config-BpTg08Vv.js → config-DszdIMLk.js} +1 -1
- package/dist/preview/assets/{config-CVS1PW6h.js → config-NH6Ic7o1.js} +1 -1
- package/dist/preview/assets/{config-CDjs2Ohl.js → config-khXqmF8c.js} +1 -1
- package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-DbnaeqGK.js → definition.vue_vue_type_script_setup_true_lang-Dd4k-ePD.js} +1 -1
- package/dist/preview/assets/index-CjnEuiHs.js +1 -0
- package/dist/preview/assets/{index-DDthcoXk.js → index-D8qxH74z.js} +72 -72
- package/dist/preview/assets/{runtime-COMOofol.js → runtime-BQ58QCMN.js} +1 -1
- package/dist/preview/assets/{runtime-CPPOlC0F.js → runtime-Bn4rSje6.js} +1 -1
- package/dist/preview/assets/{runtime-BkZp9k_z.js → runtime-CNaG3HID.js} +1 -1
- package/dist/preview/assets/{runtime-YYdaCEw3.js → runtime-DzxLxkDr.js} +1 -1
- package/dist/preview/assets/{runtime-BqFFtMNw.js → runtime-MyzMN1AA.js} +1 -1
- package/dist/preview/assets/{runtime-DejxoCBP.js → runtime-P9oO02Lt.js} +1 -1
- package/dist/preview/assets/{runtime-BICQC6bF.js → runtime-eiWE0E2f.js} +1 -1
- package/dist/preview/assets/{runtime-hKRNY9F6.js → runtime-thWYUmC7.js} +1 -1
- package/dist/preview/index.html +1 -1
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/runtime.vue +53 -13
- package/dist/runtime/components/ui/tree/TreeNode.vue +8 -10
- package/dist/runtime/components/ui/tree/useTreeState.js +0 -2
- package/dist/runtime/share/layout.js +1 -1
- package/package.json +1 -1
- package/dist/preview/assets/index-DhkKZ2ii.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o}from"./definition.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as o}from"./definition.vue_vue_type_script_setup_true_lang-Dd4k-ePD.js";import{d as n,e as a,u as c,o as f,ao as i}from"./index-D8qxH74z.js";const _=n({name:"ShwfedPrototypeActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(e){const t=i;return(r,s)=>(f(),a(o,{"action-id":e.buttonId,effect:c(t)},null,8,["action-id","effect"]))}});export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as r,an as f,ai as u,e as p,u as g,aj as m,ak as l,al as d,am as x,o as E}from"./index-
|
|
1
|
+
import{d as r,an as f,ai as u,e as p,u as g,aj as m,ak as l,al as d,am as x,o as E}from"./index-D8qxH74z.js";import{_}from"./definition.vue_vue_type_script_setup_true_lang-Dd4k-ePD.js";const k=r({name:"ShwfedHttpRequestActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(n){const e=n,t=d(),c=(s,o)=>m(s,{...l(t),...o}),i=x(),a=f(()=>u(e.config.expression,c,{messageExpression:e.config.messageExpression,resultExpression:e.config.resultExpression,channel:i,triggers:{success:e.config.onSuccess,warning:e.config.onWarning,error:e.config.onError,info:e.config.onInfo}}));return(s,o)=>(E(),p(_,{"action-id":n.buttonId,effect:g(a)},null,8,["action-id","effect"]))}});export{k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as s}from"./definition.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as s}from"./definition.vue_vue_type_script_setup_true_lang-Dd4k-ePD.js";import{d as c,an as o,az as i,e as r,u as f,am as u,o as m}from"./index-D8qxH74z.js";const g=c({name:"ShwfedEventDispatchActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(e){const n=e,t=u(),a=o(()=>i(t,n.config.triggers));return(p,d)=>(m(),r(s,{"action-id":e.buttonId,effect:f(a)},null,8,["action-id","effect"]))}});export{g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as _,an as j,ae as B,aq as r,az as m,aA as E,aB as S,e as k,u as v,aj as x,ak as L,am as b,o as C,al as R}from"./index-
|
|
1
|
+
import{d as _,an as j,ae as B,aq as r,az as m,aA as E,aB as S,e as k,u as v,aj as x,ak as L,am as b,o as C,al as R}from"./index-D8qxH74z.js";import{_ as T}from"./definition.vue_vue_type_script_setup_true_lang-Dd4k-ePD.js";const I=_({name:"ShwfedHttpDownloadActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(d){const c=d,g=R(),t=(e,n)=>x(e,{...L(g),...n}),l=b(),p=new Set(["success","error","warning","info"]);function f(e){const n=URL.createObjectURL(e),o=document.createElement("a");o.href=n,o.download=e.name,document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(n)}const y=j(()=>B(function*(){const{template:e,messageExpression:n,resultExpression:o}=c.config,u=yield*t(e.request);if(!e.download){const s=yield*u.file();return yield*r(()=>f(s)),yield*m(l,c.config.onSuccess)}const a={json:yield*u.json()},i=o===void 0?"success":yield*E(t(o,a),s=>p.has(s)?s:"success");if(n!==void 0){const s=yield*t(n,a);yield*r(()=>S[i](s))}if(i==="success"||i==="info"){const h=yield*(yield*t(e.download,a)).file();yield*r(()=>f(h))}const w={success:c.config.onSuccess,warning:c.config.onWarning,error:c.config.onError,info:c.config.onInfo};return yield*m(l,w[i])}));return(e,n)=>(C(),k(T,{"action-id":d.buttonId,effect:v(y)},null,8,["action-id","effect"]))}});export{I as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as s,ad as B,ar as E,ae as _,af as i,as as x,at as p,e as M,w as c,u as d,a0 as N,am as b,aq as k,o as w,f as L,au as T,g as u,av as I,aw as H,a7 as S,al as V,ax as $,ay as z}from"./index-
|
|
1
|
+
import{d as s,ad as B,ar as E,ae as _,af as i,as as x,at as p,e as M,w as c,u as d,a0 as N,am as b,aq as k,o as w,f as L,au as T,g as u,av as I,aw as H,a7 as S,al as V,ax as $,ay as z}from"./index-D8qxH74z.js";import{_ as A}from"./definition.vue_vue_type_script_setup_true_lang-Dd4k-ePD.js";const F=s({name:"ShwfedModalLayoutActionRuntime",__name:"runtime",props:{buttonId:{},config:{},buttonTitle:{}},setup(a){const n=a,{locale:l}=B(),f=e=>{},r=V(),m=b(),o=N(null),v=E(n.buttonId,{close:()=>k(()=>{o.value?.()})},m),g=s({name:"ModalBoundaryBridge",setup(e,{slots:t}){return H(r),$(z,v),()=>t.default?.()}}),h=(e,t)=>S()?.(e,t),C=_(function*(){const e=i(n.config.modalTitle,l.value)??i(n.buttonTitle,l.value)??"",{modal:t,close:y}=yield*x({title:e,width:n.config.modalWidth});o.value=()=>p(y()),yield*t,o.value=null});return(e,t)=>(w(),M(A,{"action-id":a.buttonId,effect:d(C)},{default:c(()=>[L("div",{style:T(a.config.modalMinHeight?`min-height: ${a.config.modalMinHeight}`:void 0)},[u(d(g),null,{default:c(()=>[u(I,{"slot-value":a.config.slot,configure:f,"find-entry":h},null,8,["slot-value"])]),_:1})],4)]),_:1},8,["action-id","effect"]))}});export{F as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as f,ad as u,ae as l,af as g,ag as d,ah as m,ai as p,e as x,u as E,aj as _,ak as h,al as k,am as w,o as C}from"./index-
|
|
1
|
+
import{d as f,ad as u,ae as l,af as g,ag as d,ah as m,ai as p,e as x,u as E,aj as _,ak as h,al as k,am as w,o as C}from"./index-D8qxH74z.js";import{_ as I}from"./definition.vue_vue_type_script_setup_true_lang-Dd4k-ePD.js";const R=f({name:"ShwfedHttpRequestConfirmActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(s){const n=s,{locale:c}=u(),a=k(),t=(e,o)=>_(e,{...h(a),...o}),i=w(),r=l(function*(){const e=g(n.config.markdown,c.value)??"",o=d(e,t);(yield*m({content:o,icon:n.config.icon,color:n.config.color}))||(yield*p(n.config.expression,t,{messageExpression:n.config.messageExpression,resultExpression:n.config.resultExpression,channel:i,triggers:{success:n.config.onSuccess,warning:n.config.onWarning,error:n.config.onError,info:n.config.onInfo}}))});return(e,o)=>(C(),x(I,{"action-id":s.buttonId,effect:E(r)},null,8,["action-id","effect"]))}});export{R as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as i,an as f,ap as r,aq as d,e as u,u as m,aj as p,ak as l,al as _,o as g}from"./index-
|
|
1
|
+
import{d as i,an as f,ap as r,aq as d,e as u,u as m,aj as p,ak as l,al as _,o as g}from"./index-D8qxH74z.js";import{_ as h}from"./definition.vue_vue_type_script_setup_true_lang-Dd4k-ePD.js";const x=i({name:"ShwfedNavigationActionRuntime",__name:"runtime",props:{buttonId:{},config:{}},setup(e){const t=e,o=_(),c=(n,a)=>p(n,{...l(o),...a}),s=f(()=>r(c(t.config.url),n=>d(()=>{window.open(n,t.config.mode)})));return(n,a)=>(g(),u(h,{"action-id":e.buttonId,effect:m(s)},null,8,["action-id","effect"]))}});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as u,ad as l,e as i,u as p,$ as d,o as m,k as f,af as _,ag as k,aj as g,ak as w,al as x}from"./index-
|
|
1
|
+
import{d as u,ad as l,e as i,u as p,$ as d,o as m,k as f,af as _,ag as k,aj as g,ak as w,al as x}from"./index-D8qxH74z.js";const B=u({name:"ShwfedMarkdownItemRuntime",__name:"runtime",props:{config:{}},setup(n){const s=n,{locale:o}=l(),t=x(),c=(e,a)=>g(e,{...w(t),...a}),r=d(()=>{const e=_(s.config.content,o.value)??"";return k(e,c)});return(e,a)=>(m(),i(p(f),{"data-slot":"buttons-markdown",source:r.value,class:"prose prose-sm prose-zinc px-1"},null,8,["source"]))}});export{B as default};
|
package/dist/preview/index.html
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
`--primary`, the primary button variant renders as transparent. */
|
|
11
11
|
body { --primary: #009689; }
|
|
12
12
|
</style>
|
|
13
|
-
<script type="module" crossorigin src="./assets/index-
|
|
13
|
+
<script type="module" crossorigin src="./assets/index-D8qxH74z.js"></script>
|
|
14
14
|
<link rel="stylesheet" crossorigin href="./assets/index-Br_eXThF.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/runtime.vue
CHANGED
|
@@ -8,7 +8,7 @@ import { cel as _rawCel } from "../../../../../utils/cel";
|
|
|
8
8
|
import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
|
|
9
9
|
import { getLocalizedText } from "../../../../../share/locale";
|
|
10
10
|
import { Field, FieldLabel } from "../../../../ui/field";
|
|
11
|
-
import { InputGroup, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
|
|
11
|
+
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
|
|
12
12
|
import { Markdown } from "../../../../ui/markdown";
|
|
13
13
|
import { Tree as UiTree } from "../../../../ui/tree";
|
|
14
14
|
import { interpolateMarkdown } from "../../../../table/utils/runtime";
|
|
@@ -19,7 +19,38 @@ const props = defineProps({
|
|
|
19
19
|
fieldId: { type: String, required: true },
|
|
20
20
|
config: { type: null, required: true }
|
|
21
21
|
});
|
|
22
|
-
const { locale } = useI18n(
|
|
22
|
+
const { locale, t } = useI18n({
|
|
23
|
+
inheritLocale: true,
|
|
24
|
+
messages: {
|
|
25
|
+
zh: {
|
|
26
|
+
"tree-multi-search-label": "\u641C\u7D22",
|
|
27
|
+
"tree-multi-search-clear": "\u6E05\u9664\u641C\u7D22",
|
|
28
|
+
"tree-multi-load-error": "\u52A0\u8F7D\u5931\u8D25",
|
|
29
|
+
"tree-multi-loading": "\u52A0\u8F7D\u4E2D\u2026",
|
|
30
|
+
"tree-multi-empty": "\u65E0\u53EF\u9009\u9879",
|
|
31
|
+
"tree-multi-readonly-empty": "\u2014",
|
|
32
|
+
"tree-multi-readonly-separator": "\u3001"
|
|
33
|
+
},
|
|
34
|
+
en: {
|
|
35
|
+
"tree-multi-search-label": "Search",
|
|
36
|
+
"tree-multi-search-clear": "Clear search",
|
|
37
|
+
"tree-multi-load-error": "Failed to load",
|
|
38
|
+
"tree-multi-loading": "Loading\u2026",
|
|
39
|
+
"tree-multi-empty": "No options",
|
|
40
|
+
"tree-multi-readonly-empty": "\u2014",
|
|
41
|
+
"tree-multi-readonly-separator": ", "
|
|
42
|
+
},
|
|
43
|
+
ja: {
|
|
44
|
+
"tree-multi-search-label": "\u691C\u7D22",
|
|
45
|
+
"tree-multi-search-clear": "\u691C\u7D22\u3092\u30AF\u30EA\u30A2",
|
|
46
|
+
"tree-multi-load-error": "\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
47
|
+
"tree-multi-loading": "\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",
|
|
48
|
+
"tree-multi-empty": "\u9078\u629E\u80A2\u306A\u3057",
|
|
49
|
+
"tree-multi-readonly-empty": "\u2014",
|
|
50
|
+
"tree-multi-readonly-separator": "\u3001"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
23
54
|
const { state, getAt, setAt } = useFormState();
|
|
24
55
|
const inherited = injectCELContext();
|
|
25
56
|
const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
|
|
@@ -203,11 +234,12 @@ function filterPredicate(node, query) {
|
|
|
203
234
|
}
|
|
204
235
|
const filterLabelText = computed(() => {
|
|
205
236
|
const localized = props.config.filter?.label ? getLocalizedText(props.config.filter.label, locale.value) : void 0;
|
|
206
|
-
return localized && localized.length > 0 ? localized : "
|
|
237
|
+
return localized && localized.length > 0 ? localized : t("tree-multi-search-label");
|
|
207
238
|
});
|
|
208
239
|
const readonlyText = computed(() => {
|
|
209
240
|
const selected = new Set(model.value);
|
|
210
|
-
|
|
241
|
+
const empty = t("tree-multi-readonly-empty");
|
|
242
|
+
if (selected.size === 0) return empty;
|
|
211
243
|
const found = /* @__PURE__ */ new Map();
|
|
212
244
|
const stack = [...roots.value];
|
|
213
245
|
while (stack.length) {
|
|
@@ -218,7 +250,7 @@ const readonlyText = computed(() => {
|
|
|
218
250
|
if (kids && kids.length) stack.push(...kids);
|
|
219
251
|
}
|
|
220
252
|
const labels = model.value.map((id) => found.get(id) ?? id).filter((l) => l.length > 0);
|
|
221
|
-
return labels.length > 0 ? labels.join("
|
|
253
|
+
return labels.length > 0 ? labels.join(t("tree-multi-readonly-separator")) : empty;
|
|
222
254
|
});
|
|
223
255
|
</script>
|
|
224
256
|
|
|
@@ -257,17 +289,25 @@ const readonlyText = computed(() => {
|
|
|
257
289
|
>
|
|
258
290
|
<FieldLabel>{{ filterLabelText }}</FieldLabel>
|
|
259
291
|
<InputGroup>
|
|
292
|
+
<InputGroupAddon align="inline-start">
|
|
293
|
+
<Icon icon="lucide:search" />
|
|
294
|
+
</InputGroupAddon>
|
|
260
295
|
<InputGroupInput
|
|
261
296
|
v-model="filterQuery"
|
|
262
297
|
:disabled="isDisabled"
|
|
263
298
|
/>
|
|
264
|
-
<
|
|
299
|
+
<InputGroupAddon
|
|
265
300
|
v-if="filterQuery.length > 0"
|
|
266
|
-
|
|
267
|
-
@click="filterQuery = ''"
|
|
301
|
+
align="inline-end"
|
|
268
302
|
>
|
|
269
|
-
<
|
|
270
|
-
|
|
303
|
+
<InputGroupButton
|
|
304
|
+
size="icon-xs"
|
|
305
|
+
:aria-label="t('tree-multi-search-clear')"
|
|
306
|
+
@click="filterQuery = ''"
|
|
307
|
+
>
|
|
308
|
+
<Icon icon="lucide:x" />
|
|
309
|
+
</InputGroupButton>
|
|
310
|
+
</InputGroupAddon>
|
|
271
311
|
</InputGroup>
|
|
272
312
|
</Field>
|
|
273
313
|
|
|
@@ -275,13 +315,13 @@ const readonlyText = computed(() => {
|
|
|
275
315
|
v-if="fetchError && roots.length === 0"
|
|
276
316
|
class="min-h-9 py-1.5 text-sm text-red-500"
|
|
277
317
|
>
|
|
278
|
-
|
|
318
|
+
{{ t("tree-multi-load-error") }}
|
|
279
319
|
</div>
|
|
280
320
|
<div
|
|
281
321
|
v-else-if="loading && roots.length === 0"
|
|
282
322
|
class="min-h-9 py-1.5 text-sm text-zinc-400"
|
|
283
323
|
>
|
|
284
|
-
|
|
324
|
+
{{ t("tree-multi-loading") }}
|
|
285
325
|
</div>
|
|
286
326
|
|
|
287
327
|
<UiTree
|
|
@@ -315,7 +355,7 @@ const readonlyText = computed(() => {
|
|
|
315
355
|
|
|
316
356
|
<template #empty>
|
|
317
357
|
<div class="min-h-9 py-1.5 text-sm text-zinc-400">
|
|
318
|
-
|
|
358
|
+
{{ t("tree-multi-empty") }}
|
|
319
359
|
</div>
|
|
320
360
|
</template>
|
|
321
361
|
</UiTree>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { Icon } from "@iconify/vue";
|
|
4
4
|
import { cn } from "../../../utils/cn";
|
|
5
|
+
import { Checkbox } from "../checkbox";
|
|
5
6
|
defineOptions({ name: "UiTreeNode", inheritAttrs: false });
|
|
6
7
|
const props = defineProps({
|
|
7
8
|
node: { type: null, required: true },
|
|
@@ -136,19 +137,16 @@ const showChildren = computed(() => expandable.value && expanded.value);
|
|
|
136
137
|
class="inline-block size-4 shrink-0"
|
|
137
138
|
/>
|
|
138
139
|
|
|
139
|
-
<!-- selector:
|
|
140
|
-
|
|
140
|
+
<!-- selector: shadcn-styled Checkbox for multi; raw radio for single
|
|
141
|
+
(no standalone shadcn radio — RadioGroupItem requires a group). -->
|
|
141
142
|
<template v-if="selectionMode !== 'none' && userSelectable">
|
|
142
|
-
<
|
|
143
|
+
<Checkbox
|
|
143
144
|
v-if="selectionMode === 'multi'"
|
|
144
|
-
|
|
145
|
-
class="size-4 shrink-0 accent-(--primary) cursor-pointer"
|
|
146
|
-
:checked="selectedFlag"
|
|
147
|
-
:data-state="indeterminateFlag ? 'indeterminate' : selectedFlag ? 'checked' : 'unchecked'"
|
|
148
|
-
:aria-checked="indeterminateFlag ? 'mixed' : selectedFlag"
|
|
145
|
+
:model-value="indeterminateFlag ? 'indeterminate' : selectedFlag"
|
|
149
146
|
data-tree-toggle="checkbox"
|
|
150
|
-
@
|
|
151
|
-
|
|
147
|
+
@update:model-value="onToggleSelect"
|
|
148
|
+
@click.stop
|
|
149
|
+
/>
|
|
152
150
|
<input
|
|
153
151
|
v-else
|
|
154
152
|
type="radio"
|
|
@@ -189,7 +189,6 @@ export function useTreeState(opts) {
|
|
|
189
189
|
}
|
|
190
190
|
function isIndeterminate(node, depth) {
|
|
191
191
|
if (opts.selectionMode() !== "multi") return false;
|
|
192
|
-
if (opts.cascade() !== "cascade-both") return false;
|
|
193
192
|
const { selectedCount, total } = descendantSelectionStats(node, depth);
|
|
194
193
|
if (total === 0) return false;
|
|
195
194
|
return selectedCount > 0 && selectedCount < total;
|
|
@@ -198,7 +197,6 @@ export function useTreeState(opts) {
|
|
|
198
197
|
const k = opts.getKey(node);
|
|
199
198
|
if (selected.has(k)) return true;
|
|
200
199
|
if (opts.selectionMode() !== "multi") return false;
|
|
201
|
-
if (opts.cascade() !== "cascade-both") return false;
|
|
202
200
|
const { selectedCount, total } = descendantSelectionStats(node, depth);
|
|
203
201
|
return total > 0 && selectedCount === total;
|
|
204
202
|
}
|
|
@@ -24,7 +24,7 @@ export const Placement = Schema.Struct({
|
|
|
24
24
|
v: Schema.optional(Align.annotations({ title: "\u5782\u76F4\u5BF9\u9F50", description: "\u5782\u76F4\u8F74\u5BF9\u9F50\uFF08align-self\uFF09" }))
|
|
25
25
|
}).annotations({
|
|
26
26
|
title: "Placement",
|
|
27
|
-
description: "\u5757\u5728\u67D0\u4E00\u5E03\u5C40\u4E2D\u7684\u4F4D\u7F6E\u4E0E\u5BF9\u9F50"
|
|
27
|
+
description: "\u5757\u5728\u67D0\u4E00\u5E03\u5C40\u4E2D\u7684\u4F4D\u7F6E\u4E0E\u5BF9\u9F50\u3002`area` \u7684\u5BBD `(x2-x1)` \u4E0E\u9AD8 `(y2-y1)` \u63A8\u8350\u53D6 `search_metadata` \u8FD4\u56DE\u7684 `w.initial` / `h.initial`\uFF1B\u53EF\u5728 `[w.min, w.max]` / `[h.min, h.max]` \u5185\u81EA\u884C\u8C03\u8282\u4EE5\u6539\u53D8\u5B9E\u9645\u5360\u4F4D\uFF08\u66F4\u5927\u7684\u503C\u5373\u5360\u66F4\u591A\u7684\u7F51\u683C\u5217/\u884C\uFF0C\u4ECE\u800C\u62FF\u5230\u66F4\u5927\u7684\u6E32\u67D3\u6BD4\u4F8B\uFF09"
|
|
28
28
|
});
|
|
29
29
|
export const DEFAULT_GAP = 4;
|
|
30
30
|
export const Layout = Schema.Struct({
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aH as e}from"./index-DDthcoXk.js";import{aI as r,aJ as s,aK as t}from"./index-DDthcoXk.js";export{r as TableConfig,s as createTableConfig,e as default,t as getColumnTechnicalKey};
|