@sparqjs/schema-vue 0.1.0 → 0.2.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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BUILTIN_ACTION_ATTACH as e, BUILTIN_ACTION_CREATE as t, BUILTIN_ACTION_DELETE as n, BUILTIN_ACTION_DETACH as r, BUILTIN_ACTION_SUBMIT as i, BUILTIN_ACTION_UPDATE as a, RELATION_LIST_DIRECT_ACTION_HANDLER as o, SCHEMA_COMPONENT_BOOLEAN_TAG as s, SCHEMA_COMPONENT_DATETIME_TEXT as c, SCHEMA_COMPONENT_DATE_TEXT as l, SCHEMA_COMPONENT_FILE_LINK_LIST as u, SCHEMA_COMPONENT_FILE_UPLOAD as d, SCHEMA_COMPONENT_HELP as f, SCHEMA_COMPONENT_ICON as p, SCHEMA_COMPONENT_ICON_INPUT as m, SCHEMA_COMPONENT_IMAGE_THUMBNAIL as h, SCHEMA_COMPONENT_IMAGE_UPLOAD as g, SCHEMA_COMPONENT_JSON_EDITOR as _, SCHEMA_COMPONENT_JSON_SUMMARY as v, SCHEMA_COMPONENT_KEY_VALUE as y, SCHEMA_COMPONENT_LINK as b, SCHEMA_COMPONENT_NUMBER_TEXT as x, SCHEMA_COMPONENT_RELATION_LABEL as S, SCHEMA_COMPONENT_RICH_TEXT as ee, SCHEMA_COMPONENT_SECTION as te, SCHEMA_COMPONENT_STATUS_TAG as ne, SCHEMA_COMPONENT_TAG as re, SCHEMA_COMPONENT_TAGS as ie, SCHEMA_COMPONENT_TEXT_ELLIPSIS as ae, SCHEMA_COMPONENT_THUMBNAIL as oe, SCHEMA_COMPONENT_TIME_TEXT as se, SCHEMA_UI_ALERT as ce, SCHEMA_UI_BUTTON as C, SCHEMA_UI_BUTTON_GROUP as w, SCHEMA_UI_CARD as le, SCHEMA_UI_CASCADER as ue, SCHEMA_UI_CHECKBOX as de, SCHEMA_UI_CHECKBOX_GROUP as fe, SCHEMA_UI_COL as pe, SCHEMA_UI_COLLAPSE as me, SCHEMA_UI_COLLAPSE_ITEM as he, SCHEMA_UI_COLOR_PICKER as ge, SCHEMA_UI_DATE_PICKER as _e, SCHEMA_UI_DIALOG as ve, SCHEMA_UI_DIVIDER as ye, SCHEMA_UI_DRAWER as be, SCHEMA_UI_DROPDOWN as xe, SCHEMA_UI_DROPDOWN_ITEM as Se, SCHEMA_UI_DROPDOWN_MENU as Ce, SCHEMA_UI_EMPTY as we, SCHEMA_UI_FORM as Te, SCHEMA_UI_FORM_ITEM as Ee, SCHEMA_UI_NUMBER as De, SCHEMA_UI_OPTION as Oe, SCHEMA_UI_OPTION_GROUP as ke, SCHEMA_UI_PAGINATION as Ae, SCHEMA_UI_RADIO as je, SCHEMA_UI_RADIO_GROUP as Me, SCHEMA_UI_RATE as Ne, SCHEMA_UI_ROW as Pe, SCHEMA_UI_SCROLLBAR as Fe, SCHEMA_UI_SELECT as Ie, SCHEMA_UI_SLIDER as Le, SCHEMA_UI_SWITCH as Re, SCHEMA_UI_TABLE as ze, SCHEMA_UI_TABLE_COLUMN as Be, SCHEMA_UI_TABS as Ve, SCHEMA_UI_TAB_PANE as He, SCHEMA_UI_TAG as Ue, SCHEMA_UI_TEXT as We, SCHEMA_UI_TEXTAREA as Ge, SCHEMA_UI_TIME_PICKER as Ke, SCHEMA_UI_TREE as qe, SCHEMA_UI_TREE_SELECT as Je, SPARQ_BASE_ICON_NAMES as Ye, buildResourceViewModel as Xe, createActionRuntime as Ze, createDefaultInitialValues as Qe, createDiagnostic as $e, createRelationListFilters as et, createRelationListPayload as T, createRelationListSelectionFilters as tt, createSchemaRuntime as nt, createSessionController as rt, createSessionControllerState as it, dispatchSchemaAction as at, evaluateCondition as ot, evaluateValueExpression as st, executeRelationListOperation as ct, getErrorMessage as lt, inferTableOperateColumnWidth as ut, interpolateTemplate as dt, isRelationListOperationEnabled as ft, isRelationListParentMissing as pt, resolveAction as mt, resolveActionState as ht, resolveFieldRuntimeState as gt, resolveNodeState as _t, resolveRelationListOperationConfig as vt, resolveRelationListOperationForm as yt, resolveRelationListOperationInteraction as E, resolveRelationListOperationPlacement as bt, resolveRelationListRefreshMode as xt, resolveRelationListResource as D, resolveRelationListSelectionTable as St, resolveRenderView as Ct, resolveSparqIconName as wt } from "@sparqjs/schema-core";
1
+ import { BUILTIN_ACTION_ATTACH as e, BUILTIN_ACTION_CREATE as t, BUILTIN_ACTION_DELETE as n, BUILTIN_ACTION_DETACH as r, BUILTIN_ACTION_SUBMIT as i, BUILTIN_ACTION_UPDATE as a, RELATION_LIST_DIRECT_ACTION_HANDLER as o, SCHEMA_COMPONENT_BOOLEAN_TAG as s, SCHEMA_COMPONENT_DATETIME_TEXT as c, SCHEMA_COMPONENT_DATE_TEXT as l, SCHEMA_COMPONENT_FILE_LINK_LIST as u, SCHEMA_COMPONENT_FILE_UPLOAD as d, SCHEMA_COMPONENT_HELP as f, SCHEMA_COMPONENT_ICON as p, SCHEMA_COMPONENT_ICON_INPUT as m, SCHEMA_COMPONENT_IMAGE_THUMBNAIL as h, SCHEMA_COMPONENT_IMAGE_UPLOAD as g, SCHEMA_COMPONENT_JSON_EDITOR as _, SCHEMA_COMPONENT_JSON_SUMMARY as v, SCHEMA_COMPONENT_KEY_VALUE as y, SCHEMA_COMPONENT_LINK as b, SCHEMA_COMPONENT_NUMBER_TEXT as x, SCHEMA_COMPONENT_RELATION_LABEL as S, SCHEMA_COMPONENT_RICH_TEXT as C, SCHEMA_COMPONENT_SECTION as ee, SCHEMA_COMPONENT_STATUS_TAG as te, SCHEMA_COMPONENT_TAG as ne, SCHEMA_COMPONENT_TAGS as re, SCHEMA_COMPONENT_TEXT_ELLIPSIS as ie, SCHEMA_COMPONENT_THUMBNAIL as ae, SCHEMA_COMPONENT_TIME_TEXT as oe, SCHEMA_UI_ALERT as se, SCHEMA_UI_BUTTON as w, SCHEMA_UI_BUTTON_GROUP as T, SCHEMA_UI_CARD as ce, SCHEMA_UI_CASCADER as le, SCHEMA_UI_CHECKBOX as ue, SCHEMA_UI_CHECKBOX_GROUP as de, SCHEMA_UI_COL as fe, SCHEMA_UI_COLLAPSE as pe, SCHEMA_UI_COLLAPSE_ITEM as me, SCHEMA_UI_COLOR_PICKER as he, SCHEMA_UI_DATE_PICKER as ge, SCHEMA_UI_DIALOG as _e, SCHEMA_UI_DIVIDER as ve, SCHEMA_UI_DRAWER as ye, SCHEMA_UI_DROPDOWN as be, SCHEMA_UI_DROPDOWN_ITEM as xe, SCHEMA_UI_DROPDOWN_MENU as Se, SCHEMA_UI_EMPTY as Ce, SCHEMA_UI_FORM as we, SCHEMA_UI_FORM_ITEM as Te, SCHEMA_UI_NUMBER as Ee, SCHEMA_UI_OPTION as De, SCHEMA_UI_OPTION_GROUP as Oe, SCHEMA_UI_PAGINATION as ke, SCHEMA_UI_RADIO as Ae, SCHEMA_UI_RADIO_GROUP as je, SCHEMA_UI_RATE as Me, SCHEMA_UI_ROW as Ne, SCHEMA_UI_SCROLLBAR as Pe, SCHEMA_UI_SELECT as Fe, SCHEMA_UI_SLIDER as Ie, SCHEMA_UI_SWITCH as Le, SCHEMA_UI_TABLE as Re, SCHEMA_UI_TABLE_COLUMN as ze, SCHEMA_UI_TABS as Be, SCHEMA_UI_TAB_PANE as Ve, SCHEMA_UI_TAG as He, SCHEMA_UI_TEXT as Ue, SCHEMA_UI_TEXTAREA as We, SCHEMA_UI_TIME_PICKER as Ge, SCHEMA_UI_TREE as Ke, SCHEMA_UI_TREE_SELECT as qe, SPARQ_ICON_NAMES as Je, buildResourceViewModel as Ye, createActionRuntime as Xe, createDefaultInitialValues as Ze, createDiagnostic as Qe, createRelationListFilters as $e, createRelationListPayload as E, createRelationListSelectionFilters as et, createSchemaRuntime as tt, createSessionController as nt, createSessionControllerState as rt, dispatchSchemaAction as it, evaluateCondition as at, evaluateValueExpression as ot, executeRelationListOperation as st, getErrorMessage as ct, inferTableOperateColumnWidth as lt, interpolateTemplate as ut, isRelationListOperationEnabled as dt, isRelationListParentMissing as ft, resolveAction as pt, resolveActionState as mt, resolveFieldRuntimeState as ht, resolveNodeState as gt, resolveRelationListOperationConfig as _t, resolveRelationListOperationForm as vt, resolveRelationListOperationInteraction as yt, resolveRelationListOperationPlacement as bt, resolveRelationListRefreshMode as xt, resolveRelationListResource as D, resolveRelationListSelectionTable as St, resolveRenderView as Ct, resolveSparqIconName as wt } from "@sparqjs/schema-core";
2
2
  import { Teleport as Tt, computed as O, defineComponent as k, h as A, inject as j, isVNode as M, onBeforeUnmount as Et, reactive as Dt, ref as N, render as Ot, shallowRef as P, watch as F } from "vue";
3
3
  //#region src/keys.ts
4
4
  var kt = Symbol("sparq.frontend-kernel"), At = Symbol("sparq.schema.runtime"), jt = Symbol("sparq.schema.renderer"), Mt = Symbol("sparq.schema.presentation"), Nt = Symbol("sparq.schema.ui-adapter"), I = Symbol("sparq.ui-kit"), Pt = Symbol("sparq.component-registry"), Ft = Symbol("sparq.icon-registry"), It = Symbol("sparq.rich-text-registry"), L = Symbol("sparq.asset-service"), Lt = Symbol("sparq.asset-preview-registry");
@@ -57,7 +57,11 @@ var Bt = k({
57
57
  return r?.render(e.name, {
58
58
  ...t,
59
59
  style: i
60
- }) ?? A("span", {
60
+ }) || ((e.name === "info" ? void 0 : r?.render("info", {
61
+ ...t,
62
+ style: i,
63
+ "aria-label": t["aria-label"] ?? e.name
64
+ })) ?? A("span", {
61
65
  ...t,
62
66
  class: ["sparq-icon", t.class],
63
67
  style: {
@@ -68,7 +72,7 @@ var Bt = k({
68
72
  lineHeight: 1
69
73
  },
70
74
  "data-sparq-icon": e.name
71
- }, e.name.slice(0, 1).toUpperCase());
75
+ }, e.name.slice(0, 1).toUpperCase()));
72
76
  };
73
77
  }
74
78
  });
@@ -116,7 +120,7 @@ var Ut = k({
116
120
  class: ["sparq-icon-input", t.class],
117
121
  style: t.style
118
122
  }, [
119
- R(e.ui, We, {
123
+ R(e.ui, Ue, {
120
124
  ...Rt(e.input),
121
125
  modelValue: e.input.value,
122
126
  disabled: e.input.disabled === !0 || e.input.loading === !0,
@@ -139,7 +143,7 @@ var Ut = k({
139
143
  icons: e.icons,
140
144
  size: 16
141
145
  })]) : void 0,
142
- append: () => R(e.ui, C, {
146
+ append: () => R(e.ui, w, {
143
147
  disabled: c.value,
144
148
  onClick: d,
145
149
  "data-slot": "icon-picker-trigger"
@@ -163,7 +167,7 @@ var Ut = k({
163
167
  }
164
168
  });
165
169
  function Wt(e, t, n, r, i, a, o) {
166
- return R(e, ve, {
170
+ return R(e, _e, {
167
171
  modelValue: r,
168
172
  title: t.props?.title ?? "选择图标",
169
173
  width: t.props?.dialogWidth ?? "720px",
@@ -175,7 +179,7 @@ function Wt(e, t, n, r, i, a, o) {
175
179
  "data-sparq-icon-input-dialog": ""
176
180
  }, {
177
181
  header: () => A("span", { class: "sparq-icon-input-dialog__title" }, String(t.props?.title ?? "选择图标")),
178
- default: () => A("div", { class: "sparq-icon-input-dialog" }, [R(e, We, {
182
+ default: () => A("div", { class: "sparq-icon-input-dialog" }, [R(e, Ue, {
179
183
  modelValue: i,
180
184
  placeholder: t.props?.searchPlaceholder ?? "搜索图标",
181
185
  clearable: !0,
@@ -416,7 +420,7 @@ var tn = k({
416
420
  n.value && (t.value = z(r, rn(e.input).indent));
417
421
  }, { deep: !0 }), () => {
418
422
  let r = rn(e.input), i = Rt(e.input);
419
- return R(e.ui, Ge, {
423
+ return R(e.ui, We, {
420
424
  ...i,
421
425
  modelValue: t.value,
422
426
  autosize: e.input.props?.autosize ?? {
@@ -592,7 +596,7 @@ function mn(e, t, n, r) {
592
596
  return A("div", {
593
597
  class: "sparq-key-value-editor__toolbar",
594
598
  "data-slot": "key-value-toolbar"
595
- }, [R(e, C, An(n, t === "rows", () => r("rows")), { default: () => "Rows" }), R(e, C, An(n, t === "json", () => r("json")), { default: () => "JSON" })]);
599
+ }, [R(e, w, An(n, t === "rows", () => r("rows")), { default: () => "Rows" }), R(e, w, An(n, t === "json", () => r("json")), { default: () => "JSON" })]);
596
600
  }
597
601
  function hn(e, t, n, r) {
598
602
  let i = n.length ? n : Nn(), a = wn(i), o = Tn(a);
@@ -618,7 +622,7 @@ function _n(e, t, n, r, i, a, o) {
618
622
  A("div", {
619
623
  class: "sparq-key-value-editor__cell",
620
624
  "data-slot": "key-cell"
621
- }, [R(e, We, {
625
+ }, [R(e, Ue, {
622
626
  ...On(t),
623
627
  modelValue: r.key,
624
628
  placeholder: t.props?.keyPlaceholder ?? "key",
@@ -633,7 +637,7 @@ function _n(e, t, n, r, i, a, o) {
633
637
  A("div", {
634
638
  class: "sparq-key-value-editor__cell",
635
639
  "data-slot": "value-cell"
636
- }, [R(e, We, {
640
+ }, [R(e, Ue, {
637
641
  ...On(t),
638
642
  modelValue: r.value,
639
643
  placeholder: t.props?.valuePlaceholder ?? "value",
@@ -642,11 +646,11 @@ function _n(e, t, n, r, i, a, o) {
642
646
  o(En(n, i, { value: V(e) }));
643
647
  }
644
648
  })]),
645
- i === 0 ? R(e, C, kn(t, () => o([...n, Pn()])), { default: () => "+" }) : R(e, C, kn(t, () => o(Dn(n, i))), { default: () => "-" })
649
+ i === 0 ? R(e, w, kn(t, () => o([...n, Pn()])), { default: () => "+" }) : R(e, w, kn(t, () => o(Dn(n, i))), { default: () => "-" })
646
650
  ]);
647
651
  }
648
652
  function vn(e, t, n, r, i, a) {
649
- return R(e, Ge, {
653
+ return R(e, We, {
650
654
  ...Rt(t),
651
655
  modelValue: n,
652
656
  autosize: t.props?.autosize ?? {
@@ -893,8 +897,11 @@ var Bn = k({
893
897
  }
894
898
  },
895
899
  setup(e, { attrs: t }) {
896
- let n = N(), r = N(!1), i = N(), a = O(() => Wn(e.input)), o = O(() => ro(e.input.props?.toolbar)), s = O(() => ({ "--sparq-rich-text-sticky-offset": Hn(o.value?.stickyOffset ?? 0) }));
897
- return F(O(() => e.editors?.get(a.value) ?? e.editors?.get("fallback")), async (e) => {
900
+ let n = N(), r = N(!1), i = N(), a = O(() => Wn(e.input)), o = O(() => ro(e.input.props?.format) ?? "html"), s = O(() => ao(e.input.props?.toolbar)), c = O(() => ({ "--sparq-rich-text-sticky-offset": Hn(s.value?.stickyOffset ?? 0) }));
901
+ return F(O(() => {
902
+ let t = a.value;
903
+ return t ? e.editors?.get(t) : e.editors?.get("default") ?? e.editors?.get("fallback");
904
+ }), async (e) => {
898
905
  if (n.value = void 0, i.value = void 0, !e?.loader) {
899
906
  n.value = e;
900
907
  return;
@@ -913,13 +920,14 @@ var Bn = k({
913
920
  width: "100%",
914
921
  minWidth: 0,
915
922
  flex: "1 1 100%",
916
- ...s.value,
923
+ ...c.value,
917
924
  ...Vn(t.style)
918
925
  },
919
926
  "data-sparq-rich-text": "",
920
- "data-toolbar-sticky": o.value?.sticky === !0 ? "true" : void 0,
921
- "data-editor": a.value
922
- }, Un(e.input, e.ui, n.value, r.value, i.value, e.assetService) ?? void 0);
927
+ "data-toolbar-sticky": s.value?.sticky === !0 ? "true" : void 0,
928
+ "data-editor": a.value ?? "default",
929
+ "data-format": o.value
930
+ }, Un(e.input, e.ui, n.value, r.value, i.value, e.assetService, o.value) ?? void 0);
923
931
  }
924
932
  });
925
933
  function Vn(e) {
@@ -928,9 +936,10 @@ function Vn(e) {
928
936
  function Hn(e) {
929
937
  return typeof e == "number" ? e + "px" : e;
930
938
  }
931
- function Un(e, t, n, r, i, a) {
932
- return r ? A("div", { "data-slot": "rich-text-loading" }, String(e.props?.loadingText ?? "加载富文本编辑器...")) : i ? A("div", { "data-slot": "rich-text-error" }, i.message) : n ? no(n, {
939
+ function Un(e, t, n, r, i, a, o) {
940
+ return r ? A("div", { "data-slot": "rich-text-loading" }, String(e.props?.loadingText ?? "加载富文本编辑器...")) : i ? A("div", { "data-slot": "rich-text-error" }, i.message) : n ? io(n, o) ? no(n, {
933
941
  value: Gn(e.value),
942
+ format: o,
934
943
  props: e.props,
935
944
  disabled: e.disabled,
936
945
  readonly: e.readonly,
@@ -941,10 +950,10 @@ function Un(e, t, n, r, i, a) {
941
950
  e.onChange?.(t);
942
951
  },
943
952
  onBlur: e.onBlur
944
- }) : A("div", { "data-slot": "rich-text-missing" }, `Rich text editor "${Wn(e)}" is not registered.`);
953
+ }) : A("div", { "data-slot": "rich-text-format-error" }, `Rich text editor "${Wn(e) ?? "default"}" does not support format "${o}" (supported: ${(n.formats ?? ["html"]).join(", ")}).`) : A("div", { "data-slot": "rich-text-missing" }, `Rich text editor "${Wn(e) ?? "default"}" is not registered.`);
945
954
  }
946
955
  function Wn(e) {
947
- return typeof e.props?.editor == "string" ? e.props.editor : "fallback";
956
+ return typeof e.props?.editor == "string" ? e.props.editor : void 0;
948
957
  }
949
958
  function Gn(e) {
950
959
  return typeof e == "string" ? e : String(e ?? "");
@@ -960,6 +969,10 @@ var Kn = k({
960
969
  type: String,
961
970
  default: void 0
962
971
  },
972
+ format: {
973
+ type: String,
974
+ default: void 0
975
+ },
963
976
  toolbar: {
964
977
  type: Object,
965
978
  default: void 0
@@ -997,6 +1010,7 @@ function qn(e, t) {
997
1010
  return {
998
1011
  ...Qt(e, t),
999
1012
  ...e.editor ? { editor: e.editor } : void 0,
1013
+ ...e.format ? { format: e.format } : void 0,
1000
1014
  ...e.toolbar ? { toolbar: e.toolbar } : void 0,
1001
1015
  ...e.editorProps ? { editorProps: e.editorProps } : void 0
1002
1016
  };
@@ -2030,7 +2044,7 @@ var ci = k({
2030
2044
  title: t
2031
2045
  } : void 0;
2032
2046
  _(c.value.map((t, r) => r === e && n ? n : t), "change", n ? [n] : []);
2033
- }, ee = (e) => {
2047
+ }, C = (e) => {
2034
2048
  if (ni(e, i)) {
2035
2049
  r.open(e);
2036
2050
  return;
@@ -2073,7 +2087,7 @@ var ci = k({
2073
2087
  cancelUpload: o.cancel,
2074
2088
  retryUpload: o.retry,
2075
2089
  updateAssetTitle: S,
2076
- openAsset: ee,
2090
+ openAsset: C,
2077
2091
  assetPreviews: i
2078
2092
  }) : ui({
2079
2093
  items: g.value,
@@ -2090,7 +2104,7 @@ var ci = k({
2090
2104
  cancelUpload: o.cancel,
2091
2105
  retryUpload: o.retry,
2092
2106
  updateAssetTitle: S,
2093
- openAsset: ee,
2107
+ openAsset: C,
2094
2108
  assetPreviews: i
2095
2109
  }),
2096
2110
  e.assetService ? void 0 : A("div", { class: "sparq-upload__error" }, "Asset service is not configured."),
@@ -2402,49 +2416,49 @@ function Zi(e) {
2402
2416
  let t = (t, n, r) => e.render(t, n, r);
2403
2417
  return {
2404
2418
  render: t,
2405
- text: (e, n) => t(We, e, n),
2406
- textarea: (e, n) => t(Ge, e, n),
2407
- number: (e, n) => t(De, e, n),
2408
- select: (e, n) => t(Ie, e, n),
2409
- treeSelect: (e, n) => t(Je, e, n),
2410
- cascader: (e, n) => t(ue, e, n),
2411
- radioGroup: (e, n) => t(Me, e, n),
2412
- checkboxGroup: (e, n) => t(fe, e, n),
2413
- switch: (e, n) => t(Re, e, n),
2414
- rate: (e, n) => t(Ne, e, n),
2415
- datePicker: (e, n) => t(_e, e, n),
2416
- timePicker: (e, n) => t(Ke, e, n),
2417
- slider: (e, n) => t(Le, e, n),
2418
- colorPicker: (e, n) => t(ge, e, n),
2419
- button: (e, n) => t(C, e, n),
2420
- buttonGroup: (e, n) => t(w, e, n),
2421
- form: (e, n) => t(Te, e, n),
2422
- formItem: (e, n) => t(Ee, e, n),
2423
- table: (e, n) => t(ze, e, n),
2424
- tableColumn: (e, n) => t(Be, e, n),
2425
- tree: (e, n) => t(qe, e, n),
2426
- pagination: (e, n) => t(Ae, e, n),
2427
- alert: (e, n) => t(ce, e, n),
2428
- card: (e, n) => t(le, e, n),
2429
- tag: (e, n) => t(Ue, e, n),
2430
- empty: (e, n) => t(we, e, n),
2431
- checkbox: (e, n) => t(de, e, n),
2432
- col: (e, n) => t(pe, e, n),
2433
- collapse: (e, n) => t(me, e, n),
2434
- collapseItem: (e, n) => t(he, e, n),
2435
- dialog: (e, n) => t(ve, e, n),
2436
- divider: (e, n) => t(ye, e, n),
2437
- drawer: (e, n) => t(be, e, n),
2438
- dropdown: (e, n) => t(xe, e, n),
2439
- dropdownItem: (e, n) => t(Se, e, n),
2440
- dropdownMenu: (e, n) => t(Ce, e, n),
2441
- option: (e, n) => t(Oe, e, n),
2442
- optionGroup: (e, n) => t(ke, e, n),
2443
- radio: (e, n) => t(je, e, n),
2444
- row: (e, n) => t(Pe, e, n),
2445
- scrollbar: (e, n) => t(Fe, e, n),
2446
- tabPane: (e, n) => t(He, e, n),
2447
- tabs: (e, n) => t(Ve, e, n)
2419
+ text: (e, n) => t(Ue, e, n),
2420
+ textarea: (e, n) => t(We, e, n),
2421
+ number: (e, n) => t(Ee, e, n),
2422
+ select: (e, n) => t(Fe, e, n),
2423
+ treeSelect: (e, n) => t(qe, e, n),
2424
+ cascader: (e, n) => t(le, e, n),
2425
+ radioGroup: (e, n) => t(je, e, n),
2426
+ checkboxGroup: (e, n) => t(de, e, n),
2427
+ switch: (e, n) => t(Le, e, n),
2428
+ rate: (e, n) => t(Me, e, n),
2429
+ datePicker: (e, n) => t(ge, e, n),
2430
+ timePicker: (e, n) => t(Ge, e, n),
2431
+ slider: (e, n) => t(Ie, e, n),
2432
+ colorPicker: (e, n) => t(he, e, n),
2433
+ button: (e, n) => t(w, e, n),
2434
+ buttonGroup: (e, n) => t(T, e, n),
2435
+ form: (e, n) => t(we, e, n),
2436
+ formItem: (e, n) => t(Te, e, n),
2437
+ table: (e, n) => t(Re, e, n),
2438
+ tableColumn: (e, n) => t(ze, e, n),
2439
+ tree: (e, n) => t(Ke, e, n),
2440
+ pagination: (e, n) => t(ke, e, n),
2441
+ alert: (e, n) => t(se, e, n),
2442
+ card: (e, n) => t(ce, e, n),
2443
+ tag: (e, n) => t(He, e, n),
2444
+ empty: (e, n) => t(Ce, e, n),
2445
+ checkbox: (e, n) => t(ue, e, n),
2446
+ col: (e, n) => t(fe, e, n),
2447
+ collapse: (e, n) => t(pe, e, n),
2448
+ collapseItem: (e, n) => t(me, e, n),
2449
+ dialog: (e, n) => t(_e, e, n),
2450
+ divider: (e, n) => t(ve, e, n),
2451
+ drawer: (e, n) => t(ye, e, n),
2452
+ dropdown: (e, n) => t(be, e, n),
2453
+ dropdownItem: (e, n) => t(xe, e, n),
2454
+ dropdownMenu: (e, n) => t(Se, e, n),
2455
+ option: (e, n) => t(De, e, n),
2456
+ optionGroup: (e, n) => t(Oe, e, n),
2457
+ radio: (e, n) => t(Ae, e, n),
2458
+ row: (e, n) => t(Ne, e, n),
2459
+ scrollbar: (e, n) => t(Pe, e, n),
2460
+ tabPane: (e, n) => t(Ve, e, n),
2461
+ tabs: (e, n) => t(Be, e, n)
2448
2462
  };
2449
2463
  }
2450
2464
  var Qi = k({
@@ -2602,7 +2616,7 @@ function aa() {
2602
2616
  [m]: { render(e, t, n) {
2603
2617
  return Ht(e ?? {}, n.ui, n?.icons);
2604
2618
  } },
2605
- [ee]: { render(e, t, n) {
2619
+ [C]: { render(e, t, n) {
2606
2620
  return zn(e ?? {}, n.ui, n?.richTextEditors, n?.assetService);
2607
2621
  } },
2608
2622
  [g]: { render(e, t, n) {
@@ -2631,7 +2645,7 @@ function oa(e) {
2631
2645
  function sa(e) {
2632
2646
  let t = e.props ?? {};
2633
2647
  if (typeof t.href == "string") return t.href;
2634
- if (typeof t.hrefTemplate == "string") return dt(t.hrefTemplate, {
2648
+ if (typeof t.hrefTemplate == "string") return ut(t.hrefTemplate, {
2635
2649
  row: e.record,
2636
2650
  record: e.record,
2637
2651
  value: e.value
@@ -2906,16 +2920,16 @@ function Va() {
2906
2920
  [f]: { render(e) {
2907
2921
  return _a(e ?? {});
2908
2922
  } },
2909
- [te]: { render(e, t) {
2923
+ [ee]: { render(e, t) {
2910
2924
  return va(e ?? {}, t);
2911
2925
  } },
2912
- [ne]: { render(e) {
2926
+ [te]: { render(e) {
2913
2927
  return Ca(e ?? {});
2914
2928
  } },
2915
- [re]: { render(e) {
2929
+ [ne]: { render(e) {
2916
2930
  return Ca(e ?? {});
2917
2931
  } },
2918
- [ie]: { render(e) {
2932
+ [re]: { render(e) {
2919
2933
  return Ca(e ?? {});
2920
2934
  } },
2921
2935
  [s]: { render(e) {
@@ -2924,7 +2938,7 @@ function Va() {
2924
2938
  [b]: { render(e) {
2925
2939
  return oa(e ?? {});
2926
2940
  } },
2927
- [ae]: { render(e) {
2941
+ [ie]: { render(e) {
2928
2942
  return Y(e ?? {});
2929
2943
  } },
2930
2944
  [x]: { render(e) {
@@ -2936,7 +2950,7 @@ function Va() {
2936
2950
  [c]: { render(e) {
2937
2951
  return Y(e ?? {});
2938
2952
  } },
2939
- [se]: { render(e) {
2953
+ [oe]: { render(e) {
2940
2954
  return Y(e ?? {});
2941
2955
  } },
2942
2956
  [S]: { render(e) {
@@ -2948,7 +2962,7 @@ function Va() {
2948
2962
  [u]: { render(e) {
2949
2963
  return la(e ?? {});
2950
2964
  } },
2951
- [oe]: { render(e) {
2965
+ [ae]: { render(e) {
2952
2966
  return Ra(e ?? {});
2953
2967
  } },
2954
2968
  [h]: { render(e) {
@@ -3004,7 +3018,7 @@ function Ka(e) {
3004
3018
  //#endregion
3005
3019
  //#region src/registry/icon.ts
3006
3020
  function qa() {
3007
- return Ja(Ye.map((e) => [e, { label: Qa(e) }]));
3021
+ return Ja(Je.map((e) => [e, { label: Qa(e) }]));
3008
3022
  }
3009
3023
  function Ja(e = {}) {
3010
3024
  let t = new Map(Za(e) ? e : Object.entries(e));
@@ -3060,6 +3074,11 @@ function $a() {
3060
3074
  readonly: !0,
3061
3075
  disabled: !0
3062
3076
  },
3077
+ formats: [
3078
+ "html",
3079
+ "markdown",
3080
+ "editorjs-json"
3081
+ ],
3063
3082
  render(e) {
3064
3083
  return A("textarea", {
3065
3084
  ...e.props ?? {},
@@ -3077,7 +3096,7 @@ function $a() {
3077
3096
  } });
3078
3097
  }
3079
3098
  function eo(e = {}) {
3080
- let t = new Map(lo(e) ? e : Object.entries(e));
3099
+ let t = new Map(fo(e) ? e : Object.entries(e));
3081
3100
  return {
3082
3101
  get(e) {
3083
3102
  return t.get(e);
@@ -3102,7 +3121,7 @@ function no(e, t) {
3102
3121
  ...e.props ?? {},
3103
3122
  ...t.props ?? {}
3104
3123
  }
3105
- }, r = ro(n.props?.toolbar);
3124
+ }, r = ao(n.props?.toolbar);
3106
3125
  if (r && e.normalizeToolbar && (n.props = {
3107
3126
  ...n.props,
3108
3127
  ...e.normalizeToolbar(r, n)
@@ -3110,51 +3129,57 @@ function no(e, t) {
3110
3129
  if (e.component) return A(e.component, n);
3111
3130
  }
3112
3131
  function ro(e) {
3113
- if (!(!e || typeof e != "object" || Array.isArray(e))) return e;
3132
+ return e === "html" || e === "markdown" || e === "editorjs-json" ? e : void 0;
3114
3133
  }
3115
- function io(e, t, n = {}) {
3116
- let r = e?.mode === "custom" ? "default" : e?.mode ?? "default", i = e?.items?.length ? e.items : [...t[r] ?? t.default], a = new Set((e?.exclude ?? []).flatMap((e) => so(e, n)));
3117
- return i.flatMap((e) => so(e, n)).filter((e) => !a.has(e));
3134
+ function io(e, t) {
3135
+ return (e.formats ?? ["html"]).includes(t);
3118
3136
  }
3119
3137
  function ao(e) {
3138
+ if (!(!e || typeof e != "object" || Array.isArray(e))) return e;
3139
+ }
3140
+ function oo(e, t, n = {}) {
3141
+ let r = e?.mode === "custom" ? "default" : e?.mode ?? "default", i = e?.items?.length ? e.items : [...t[r] ?? t.default], a = new Set((e?.exclude ?? []).flatMap((e) => lo(e, n)));
3142
+ return i.flatMap((e) => lo(e, n)).filter((e) => !a.has(e));
3143
+ }
3144
+ function so(e) {
3120
3145
  if (e?.sticky === !0) return {
3121
3146
  position: "sticky",
3122
- top: co(e.stickyOffset ?? 0),
3147
+ top: uo(e.stickyOffset ?? 0),
3123
3148
  zIndex: "10"
3124
3149
  };
3125
3150
  }
3126
- function oo() {
3151
+ function co() {
3127
3152
  let e = j(It, void 0);
3128
3153
  if (!e) throw Error("Sparq rich text registry is not provided. Install a schema renderer plugin with richTextEditors.");
3129
3154
  return e;
3130
3155
  }
3131
- function so(e, t) {
3156
+ function lo(e, t) {
3132
3157
  let n = t[e];
3133
3158
  return Array.isArray(n) ? n : [n ?? e];
3134
3159
  }
3135
- function co(e) {
3160
+ function uo(e) {
3136
3161
  return typeof e == "number" ? `${e}px` : e;
3137
3162
  }
3138
- function lo(e) {
3163
+ function fo(e) {
3139
3164
  return Symbol.iterator in Object(e);
3140
3165
  }
3141
3166
  //#endregion
3142
3167
  //#region src/registry/contribution.ts
3143
- var uo = jr("renderer.schema-components"), fo = jr("renderer.icons"), po = jr("renderer.rich-text-editors");
3144
- function mo(e, t) {
3168
+ var po = jr("renderer.schema-components"), mo = jr("renderer.icons"), ho = jr("renderer.rich-text-editors");
3169
+ function go(e, t) {
3145
3170
  let n = t.layer ?? "plugin";
3146
3171
  return e.install({
3147
3172
  owner: t.owner,
3148
3173
  contributions: [
3149
- Mr(uo, Object.entries(t.components ?? {}).map(([e, t]) => ({
3174
+ Mr(po, Object.entries(t.components ?? {}).map(([e, t]) => ({
3150
3175
  key: e,
3151
3176
  value: t
3152
3177
  })), n),
3153
- Mr(fo, Object.entries(t.icons ?? {}).map(([e, t]) => ({
3178
+ Mr(mo, Object.entries(t.icons ?? {}).map(([e, t]) => ({
3154
3179
  key: e,
3155
3180
  value: t
3156
3181
  })), n),
3157
- Mr(po, Object.entries(t.richTextEditors ?? {}).map(([e, t]) => ({
3182
+ Mr(ho, Object.entries(t.richTextEditors ?? {}).map(([e, t]) => ({
3158
3183
  key: e,
3159
3184
  value: t
3160
3185
  })), n),
@@ -3166,8 +3191,8 @@ function mo(e, t) {
3166
3191
  ]
3167
3192
  });
3168
3193
  }
3169
- function ho(e) {
3170
- let t = e.registry(uo), n = P(Ha(t.entries().map((e) => [e.key, e.value])));
3194
+ function _o(e) {
3195
+ let t = e.registry(po), n = P(Ha(t.entries().map((e) => [e.key, e.value])));
3171
3196
  return t.subscribe(() => {
3172
3197
  n.value = Ha(t.entries().map((e) => [e.key, e.value]));
3173
3198
  }), {
@@ -3177,8 +3202,8 @@ function ho(e) {
3177
3202
  entries: () => n.value.entries()
3178
3203
  };
3179
3204
  }
3180
- function go(e) {
3181
- let t = e.registry(fo), n = P(Ja(t.entries().map((e) => [e.key, e.value])));
3205
+ function vo(e) {
3206
+ let t = e.registry(mo), n = P(Ja(t.entries().map((e) => [e.key, e.value])));
3182
3207
  return t.subscribe(() => {
3183
3208
  n.value = Ja(t.entries().map((e) => [e.key, e.value]));
3184
3209
  }), {
@@ -3188,8 +3213,8 @@ function go(e) {
3188
3213
  entries: () => n.value.entries()
3189
3214
  };
3190
3215
  }
3191
- function _o(e) {
3192
- let t = e.registry(po), n = P(eo(t.entries().map((e) => [e.key, e.value])));
3216
+ function yo(e) {
3217
+ let t = e.registry(ho), n = P(eo(t.entries().map((e) => [e.key, e.value])));
3193
3218
  return t.subscribe(() => {
3194
3219
  n.value = eo(t.entries().map((e) => [e.key, e.value]));
3195
3220
  }), {
@@ -3200,7 +3225,7 @@ function _o(e) {
3200
3225
  }
3201
3226
  //#endregion
3202
3227
  //#region src/render/context.ts
3203
- function vo(e, t, n, r, i, a, o, s, c, l, u, d, f) {
3228
+ function bo(e, t, n, r, i, a, o, s, c, l, u, d, f) {
3204
3229
  return {
3205
3230
  state: e,
3206
3231
  runtime: t,
@@ -3213,24 +3238,24 @@ function vo(e, t, n, r, i, a, o, s, c, l, u, d, f) {
3213
3238
  icons: a,
3214
3239
  richTextEditors: o,
3215
3240
  assetService: s,
3216
- form: yo(e, u, c),
3241
+ form: xo(e, u, c),
3217
3242
  controller: u,
3218
3243
  onAction: l,
3219
3244
  onFieldActivate: f,
3220
3245
  retry: d,
3221
3246
  resolveTableReloadView() {
3222
- return To({ state: e });
3247
+ return Eo({ state: e });
3223
3248
  },
3224
3249
  resolveTableReloadFilters() {
3225
3250
  return e.filters;
3226
3251
  }
3227
3252
  };
3228
3253
  }
3229
- function yo(e, t, n) {
3254
+ function xo(e, t, n) {
3230
3255
  return e.mode === "search" ? t?.search ?? n : t?.form ?? n;
3231
3256
  }
3232
- function bo(e, t) {
3233
- let n = gt({
3257
+ function So(e, t) {
3258
+ let n = ht({
3234
3259
  field: t.fieldSchema,
3235
3260
  dataSource: t.dataSource,
3236
3261
  mode: e.state.mode,
@@ -3243,7 +3268,7 @@ function bo(e, t) {
3243
3268
  options: t.field && r?.options && Object.prototype.hasOwnProperty.call(r.options, t.field) ? r.options[t.field] ?? [] : n
3244
3269
  };
3245
3270
  }
3246
- function xo(e, t) {
3271
+ function X(e, t) {
3247
3272
  return {
3248
3273
  schema: e.state.schema?.schema,
3249
3274
  row: t,
@@ -3259,31 +3284,31 @@ function xo(e, t) {
3259
3284
  resource: e.resource
3260
3285
  };
3261
3286
  }
3262
- function So(e) {
3287
+ function Co(e) {
3263
3288
  return e.state.schema?.schema.primaryKey ?? "id";
3264
3289
  }
3265
- function Co(e, t) {
3266
- return t?.[So(e)];
3267
- }
3268
- function wo(e) {
3269
- return e.tableReloadView ?? e.resolveTableReloadView?.() ?? To(e);
3290
+ function wo(e, t) {
3291
+ return t?.[Co(e)];
3270
3292
  }
3271
3293
  function To(e) {
3272
- return e.state.mode === "page" && Eo(e.state.view) ? e.state.view.tableName ?? "default" : e.state.viewName;
3294
+ return e.tableReloadView ?? e.resolveTableReloadView?.() ?? Eo(e);
3273
3295
  }
3274
3296
  function Eo(e) {
3297
+ return e.state.mode === "page" && Do(e.state.view) ? e.state.view.tableName ?? "default" : e.state.viewName;
3298
+ }
3299
+ function Do(e) {
3275
3300
  return !!(e && typeof e == "object" && "tableName" in e);
3276
3301
  }
3277
3302
  //#endregion
3278
3303
  //#region src/runtime/controller.ts
3279
- function Do(e = {}) {
3280
- let t = Dt(it({
3304
+ function Oo(e = {}) {
3305
+ let t = Dt(rt({
3281
3306
  initialValues: e.initialValues,
3282
3307
  applyDefaults: e.applyDefaults,
3283
3308
  schema: e.schema,
3284
3309
  initialPage: e.initialPage,
3285
3310
  initialPageSize: e.initialPageSize
3286
- })), n = rt({
3311
+ })), n = nt({
3287
3312
  ...e,
3288
3313
  state: t
3289
3314
  }), { tableState: r, ...a } = n;
@@ -3319,40 +3344,40 @@ function Do(e = {}) {
3319
3344
  }
3320
3345
  };
3321
3346
  }
3322
- function Oo(e = {}) {
3323
- return Do(e);
3347
+ function ko(e = {}) {
3348
+ return Oo(e);
3324
3349
  }
3325
3350
  //#endregion
3326
3351
  //#region src/runtime/feedback.ts
3327
- function ko() {
3352
+ function Ao() {
3328
3353
  let e = j(At, void 0);
3329
3354
  if (!e) throw Error("Sparq schema runtime is not provided. Install a schema renderer plugin with runtime.");
3330
- return Ao(e);
3355
+ return jo(e);
3331
3356
  }
3332
- function Ao(e) {
3357
+ function jo(e) {
3333
3358
  let t = async (t) => {
3334
3359
  await e.options.notify?.(t);
3335
3360
  };
3336
3361
  return {
3337
3362
  notify: t,
3338
3363
  success(e, n) {
3339
- return jo(t, "success", e, n);
3364
+ return Mo(t, "success", e, n);
3340
3365
  },
3341
3366
  error(e, n) {
3342
- return jo(t, "error", e, n);
3367
+ return Mo(t, "error", e, n);
3343
3368
  },
3344
3369
  warning(e, n) {
3345
- return jo(t, "warning", e, n);
3370
+ return Mo(t, "warning", e, n);
3346
3371
  },
3347
3372
  info(e, n) {
3348
- return jo(t, "info", e, n);
3373
+ return Mo(t, "info", e, n);
3349
3374
  },
3350
3375
  async confirmAction(t) {
3351
3376
  return e.options.confirmAction?.(t) ?? !0;
3352
3377
  }
3353
3378
  };
3354
3379
  }
3355
- function jo(e, t, n, r) {
3380
+ function Mo(e, t, n, r) {
3356
3381
  return e({
3357
3382
  ...r,
3358
3383
  type: t,
@@ -3361,9 +3386,9 @@ function jo(e, t, n, r) {
3361
3386
  }
3362
3387
  //#endregion
3363
3388
  //#region src/runtime/state.ts
3364
- function Mo(e, t) {
3389
+ function No(e, t) {
3365
3390
  let n = e.mode ?? "page", r = e.view ?? "default", i = e.runtime ?? t;
3366
- return e.schema ? Fo({
3391
+ return e.schema ? Io({
3367
3392
  mode: n,
3368
3393
  viewName: r,
3369
3394
  resource: e.resource,
@@ -3385,9 +3410,9 @@ function Mo(e, t) {
3385
3410
  fatal: !1
3386
3411
  };
3387
3412
  }
3388
- async function No(e, t) {
3389
- let n = e.mode ?? "page", r = e.view ?? "default", i = e.runtime ?? t ?? nt();
3390
- if (e.schema) return Mo(e, i);
3413
+ async function Po(e, t) {
3414
+ let n = e.mode ?? "page", r = e.view ?? "default", i = e.runtime ?? t ?? tt();
3415
+ if (e.schema) return No(e, i);
3391
3416
  if (!e.resource) return {
3392
3417
  status: "idle",
3393
3418
  loading: !1,
@@ -3405,7 +3430,7 @@ async function No(e, t) {
3405
3430
  source: e.source,
3406
3431
  payload: e.payload
3407
3432
  });
3408
- return Fo({
3433
+ return Io({
3409
3434
  mode: n,
3410
3435
  viewName: r,
3411
3436
  resource: e.resource,
@@ -3425,9 +3450,9 @@ async function No(e, t) {
3425
3450
  payload: e.payload,
3426
3451
  filters: e.filters,
3427
3452
  hideFormFooter: e.hideFormFooter,
3428
- diagnostics: [$e("error", {
3453
+ diagnostics: [Qe("error", {
3429
3454
  code: "SCHEMA_LOAD_FAILED",
3430
- message: lt(t, "Failed to load schema."),
3455
+ message: ct(t, "Failed to load schema."),
3431
3456
  hint: "Provide a runtime with dataAdapter.loadSchema, or pass schema directly.",
3432
3457
  source: "runtime",
3433
3458
  fatal: !0
@@ -3437,7 +3462,7 @@ async function No(e, t) {
3437
3462
  };
3438
3463
  }
3439
3464
  }
3440
- function Po(e) {
3465
+ function Fo(e) {
3441
3466
  return {
3442
3467
  status: "loading",
3443
3468
  loading: !0,
@@ -3451,8 +3476,8 @@ function Po(e) {
3451
3476
  fatal: !1
3452
3477
  };
3453
3478
  }
3454
- function Fo(e) {
3455
- let t = e.runtime?.buildViewModel(e.schema) ?? Xe(e.schema), n = e.runtime?.resolveView({
3479
+ function Io(e) {
3480
+ let t = e.runtime?.buildViewModel(e.schema) ?? Ye(e.schema), n = e.runtime?.resolveView({
3456
3481
  viewModel: t,
3457
3482
  mode: e.mode,
3458
3483
  view: e.viewName
@@ -3483,9 +3508,9 @@ function Fo(e) {
3483
3508
  }
3484
3509
  //#endregion
3485
3510
  //#region src/runtime/renderer.ts
3486
- function Io(e = {}) {
3487
- let { runtime: t, kernel: n, contributions: r, uiAdapter: i, uiKit: a, components: o, icons: s, richTextEditors: c, assetService: l, presentationHost: u, ...d } = e, f = t ?? nt(d), p = n ?? Nr();
3488
- mo(p, {
3511
+ function Lo(e = {}) {
3512
+ let { runtime: t, kernel: n, contributions: r, uiAdapter: i, uiKit: a, components: o, icons: s, richTextEditors: c, assetService: l, presentationHost: u, ...d } = e, f = t ?? tt(d), p = n ?? Nr();
3513
+ go(p, {
3489
3514
  owner: "@sparqjs/schema-vue",
3490
3515
  layer: "builtin",
3491
3516
  components: Object.fromEntries(Ha().entries()),
@@ -3493,8 +3518,8 @@ function Io(e = {}) {
3493
3518
  richTextEditors: Object.fromEntries($a().entries()),
3494
3519
  assetPreviews: [Hr]
3495
3520
  });
3496
- for (let e of r ?? []) mo(p, e);
3497
- return mo(p, {
3521
+ for (let e of r ?? []) go(p, e);
3522
+ return go(p, {
3498
3523
  owner: "@sparqjs/schema-vue:host",
3499
3524
  layer: "host",
3500
3525
  components: o ? Object.fromEntries(o.entries()) : void 0,
@@ -3506,29 +3531,29 @@ function Io(e = {}) {
3506
3531
  runtime: f,
3507
3532
  uiAdapter: i,
3508
3533
  uiKit: a,
3509
- components: ho(p),
3510
- icons: go(p),
3511
- richTextEditors: _o(p),
3534
+ components: _o(p),
3535
+ icons: vo(p),
3536
+ richTextEditors: yo(p),
3512
3537
  assetPreviews: zr(p),
3513
3538
  assetService: l,
3514
3539
  presentationHost: u,
3515
3540
  resolve(e) {
3516
- return Mo(e, f);
3541
+ return No(e, f);
3517
3542
  },
3518
3543
  load(e) {
3519
- return No(e, f);
3544
+ return Po(e, f);
3520
3545
  }
3521
3546
  };
3522
3547
  }
3523
3548
  //#endregion
3524
3549
  //#region src/runtime/write-back.ts
3525
- function Lo(e) {
3526
- let t = Ro(e.props?.writeBack);
3550
+ function Ro(e) {
3551
+ let t = zo(e.props?.writeBack);
3527
3552
  if (!t.length || !e.form?.setValue) return;
3528
3553
  let n = e.context?.event;
3529
3554
  for (let r of t) {
3530
- if (!Bo(r, n)) continue;
3531
- if (!r.to || !Vo(r.to)) {
3555
+ if (!Vo(r, n)) continue;
3556
+ if (!r.to || !Ho(r.to)) {
3532
3557
  console.warn("[sparq-write-back] writeBack.to must be a top-level field name.", r);
3533
3558
  continue;
3534
3559
  }
@@ -3540,30 +3565,30 @@ function Lo(e) {
3540
3565
  console.warn("[sparq-write-back] writeBack.from is required.", r);
3541
3566
  continue;
3542
3567
  }
3543
- let t = Wo(e.context, r.from);
3544
- Ho(e.form.values[r.to], r.strategy ?? "always") && e.form.setValue(r.to, t, e.node);
3568
+ let t = Go(e.context, r.from);
3569
+ Uo(e.form.values[r.to], r.strategy ?? "always") && e.form.setValue(r.to, t, e.node);
3545
3570
  }
3546
3571
  }
3547
- function Ro(e) {
3548
- return Array.isArray(e) ? e.filter(zo) : [];
3549
- }
3550
3572
  function zo(e) {
3573
+ return Array.isArray(e) ? e.filter(Bo) : [];
3574
+ }
3575
+ function Bo(e) {
3551
3576
  return typeof e == "object" && !!e;
3552
3577
  }
3553
- function Bo(e, t) {
3578
+ function Vo(e, t) {
3554
3579
  return !Array.isArray(e.events) || e.events.length === 0 ? !0 : t !== void 0 && e.events.includes(t);
3555
3580
  }
3556
- function Vo(e) {
3581
+ function Ho(e) {
3557
3582
  let t = e.trim();
3558
3583
  return t.length > 0 && !t.includes(".") && !t.includes("[") && !t.includes("]");
3559
3584
  }
3560
- function Ho(e, t) {
3561
- return t === "empty" ? Uo(e) : !0;
3585
+ function Uo(e, t) {
3586
+ return t === "empty" ? Wo(e) : !0;
3562
3587
  }
3563
- function Uo(e) {
3588
+ function Wo(e) {
3564
3589
  return e == null || e === "" ? !0 : Array.isArray(e) && e.length === 0;
3565
3590
  }
3566
- function Wo(e, t) {
3591
+ function Go(e, t) {
3567
3592
  let n = e;
3568
3593
  for (let e of t.split(".")) {
3569
3594
  if (!e) return;
@@ -3571,31 +3596,31 @@ function Wo(e, t) {
3571
3596
  n = n[Number(e)];
3572
3597
  continue;
3573
3598
  }
3574
- if (!Go(n)) return;
3599
+ if (!Ko(n)) return;
3575
3600
  n = n[e];
3576
3601
  }
3577
3602
  return n;
3578
3603
  }
3579
- function Go(e) {
3604
+ function Ko(e) {
3580
3605
  return typeof e == "object" && !!e;
3581
3606
  }
3582
3607
  //#endregion
3583
3608
  //#region src/render/action-context.ts
3584
- function X(e, t, n, r) {
3585
- let i = Ko(e, t, r);
3609
+ function Z(e, t, n, r) {
3610
+ let i = qo(e, t, r);
3586
3611
  return {
3587
3612
  ...e,
3588
3613
  action: i,
3589
3614
  placement: n,
3590
3615
  record: r,
3591
- execute: qo(e, i, n, r),
3616
+ execute: Jo(e, i, n, r),
3592
3617
  createChildContext(t) {
3593
- return X(e, t, n, r);
3618
+ return Z(e, t, n, r);
3594
3619
  }
3595
3620
  };
3596
3621
  }
3597
- function Ko(e, t, n) {
3598
- let r = ht(t, xo(e, n)), i = e.controller?.action.executing === !0 && e.controller.action.current?.action === t.action;
3622
+ function qo(e, t, n) {
3623
+ let r = mt(t, X(e, n)), i = e.controller?.action.executing === !0 && e.controller.action.current?.action === t.action;
3599
3624
  return {
3600
3625
  ...t,
3601
3626
  props: {
@@ -3606,9 +3631,9 @@ function Ko(e, t, n) {
3606
3631
  }
3607
3632
  };
3608
3633
  }
3609
- function qo(e, t, n, r) {
3634
+ function Jo(e, t, n, r) {
3610
3635
  return async () => {
3611
- let i = Ze({
3636
+ let i = Xe({
3612
3637
  dataAdapter: e.runtime.options.dataAdapter,
3613
3638
  hooks: e.runtime.options.hooks,
3614
3639
  resolveConfirm: e.runtime.options.confirmAction
@@ -3619,13 +3644,13 @@ function qo(e, t, n, r) {
3619
3644
  mode: e.state.mode,
3620
3645
  viewName: e.state.viewName,
3621
3646
  view: e.state.viewName,
3622
- id: Co(e, a),
3647
+ id: wo(e, a),
3623
3648
  record: a,
3624
3649
  selection: e.controller?.table.state.selection,
3625
3650
  formValues: e.form?.values,
3626
3651
  payload: e.payload
3627
3652
  };
3628
- return at({
3653
+ return it({
3629
3654
  controller: e.controller,
3630
3655
  action: t,
3631
3656
  actionRuntime: i,
@@ -3634,13 +3659,13 @@ function qo(e, t, n, r) {
3634
3659
  runtime: e.runtime,
3635
3660
  resource: e.resource,
3636
3661
  viewName: e.state.viewName,
3637
- primaryKey: So(e),
3662
+ primaryKey: Co(e),
3638
3663
  form: e.form,
3639
3664
  record: r,
3640
3665
  formView: e.state.mode === "form" && e.state.view && "footer" in e.state.view ? e.state.view : e.pageCreateForm,
3641
3666
  editForm: e.pageUpdateForm,
3642
3667
  editFormViewName: e.pageUpdateFormName ?? e.state.viewName,
3643
- tableReloadView: wo(e),
3668
+ tableReloadView: To(e),
3644
3669
  tableReloadMode: e.resolveTableReloadMode?.() ?? e.tableReloadMode,
3645
3670
  tableReloadTree: e.resolveTableReloadTree?.() ?? e.tableReloadTree,
3646
3671
  tableReloadFilters: e.resolveTableReloadFilters?.() ?? e.tableReloadFilters,
@@ -3653,30 +3678,30 @@ function qo(e, t, n, r) {
3653
3678
  }
3654
3679
  //#endregion
3655
3680
  //#region src/display-format.ts
3656
- function Z(e) {
3657
- return e == null || e === "" ? "-" : Array.isArray(e) ? e.map((e) => Z(e)).join(", ") : typeof e == "object" ? JSON.stringify(e) : String(e);
3681
+ function Yo(e) {
3682
+ return e == null || e === "" ? "-" : Array.isArray(e) ? e.map((e) => Yo(e)).join(", ") : typeof e == "object" ? JSON.stringify(e) : String(e);
3658
3683
  }
3659
3684
  //#endregion
3660
3685
  //#region src/shell/audit-panel.ts
3661
- function Jo(e, t = {}) {
3686
+ function Xo(e, t = {}) {
3662
3687
  let n = e.auditState;
3663
3688
  return A("section", { class: "sparq-audit-panel" }, [
3664
- Qo(e, t),
3665
- n.error ? $o(e, t) : void 0,
3666
- n.loading ? es() : void 0,
3667
- !n.loading && !n.error && n.items.length === 0 ? ts() : void 0,
3689
+ es(e, t),
3690
+ n.error ? ts(e, t) : void 0,
3691
+ n.loading ? ns() : void 0,
3692
+ !n.loading && !n.error && n.items.length === 0 ? rs() : void 0,
3668
3693
  A("div", {
3669
3694
  class: "sparq-audit-timeline",
3670
3695
  "data-sparq-audit-timeline": ""
3671
- }, n.items.map((e) => ns(e))),
3672
- is(e, t)
3696
+ }, n.items.map((e) => is(e))),
3697
+ os(e, t)
3673
3698
  ]);
3674
3699
  }
3675
- function Yo(e) {
3700
+ function Zo(e) {
3676
3701
  let t = e?.title ?? e?.name ?? e?.label ?? e?.code;
3677
3702
  if (!(t == null || t === "")) return String(t);
3678
3703
  }
3679
- function Xo(e) {
3704
+ function Qo(e) {
3680
3705
  return {
3681
3706
  create: "创建",
3682
3707
  update: "更新",
@@ -3685,55 +3710,55 @@ function Xo(e) {
3685
3710
  system: "系统"
3686
3711
  }[e] ?? e;
3687
3712
  }
3688
- function Zo(e) {
3713
+ function $o(e) {
3689
3714
  return e === "create" ? "success" : e === "delete" ? "danger" : e === "restore" ? "warning" : e === "update" ? "primary" : "info";
3690
3715
  }
3691
- function Qo(e, t) {
3692
- let n = Yo(e.record), r = e.id ?? e.record?.[e.primaryKey];
3716
+ function es(e, t) {
3717
+ let n = Zo(e.record), r = e.id ?? e.record?.[e.primaryKey];
3693
3718
  return A("header", { class: "sparq-audit-summary" }, [A("div", { class: "sparq-audit-summary__main" }, [
3694
3719
  A("span", { class: "sparq-audit-summary__label" }, "当前记录"),
3695
3720
  A("strong", { class: "sparq-audit-summary__title" }, n ?? "-"),
3696
3721
  r == null ? void 0 : A("small", { class: "sparq-audit-summary__id" }, `#${String(r)}`)
3697
- ]), t.renderRefresh?.(e) ?? as(e)]);
3722
+ ]), t.renderRefresh?.(e) ?? ss(e)]);
3698
3723
  }
3699
- function $o(e, t) {
3700
- let n = lt(e.auditState.error, "审计记录加载失败。");
3724
+ function ts(e, t) {
3725
+ let n = ct(e.auditState.error, "审计记录加载失败。");
3701
3726
  return t.renderError?.(e, n) ?? A("p", { class: "sparq-audit-panel__error" }, n);
3702
3727
  }
3703
- function es() {
3728
+ function ns() {
3704
3729
  return A("div", { class: "sparq-audit-state" }, "审计记录加载中...");
3705
3730
  }
3706
- function ts() {
3731
+ function rs() {
3707
3732
  return A("div", { class: "sparq-audit-state sparq-audit-state--empty" }, "暂无审计记录。");
3708
3733
  }
3709
- function ns(e) {
3710
- let t = Zo(e.type);
3734
+ function is(e) {
3735
+ let t = $o(e.type);
3711
3736
  return A("article", {
3712
3737
  key: e.id,
3713
3738
  class: ["sparq-audit-item", `sparq-audit-item--${t}`],
3714
3739
  "data-sparq-audit-item": e.type
3715
3740
  }, [A("span", { class: "sparq-audit-item__dot" }), A("div", { class: "sparq-audit-item__card" }, [
3716
- A("header", { class: "sparq-audit-item__header" }, [A("div", { class: "sparq-audit-item__title-group" }, [A("strong", { class: "sparq-audit-item__title" }, e.title ?? Xo(e.type)), A("span", { class: ["sparq-audit-item__type", `is-${t}`] }, Xo(e.type))]), A("time", { class: "sparq-audit-item__time" }, e.occurred_at)]),
3741
+ A("header", { class: "sparq-audit-item__header" }, [A("div", { class: "sparq-audit-item__title-group" }, [A("strong", { class: "sparq-audit-item__title" }, e.title ?? Qo(e.type)), A("span", { class: ["sparq-audit-item__type", `is-${t}`] }, Qo(e.type))]), A("time", { class: "sparq-audit-item__time" }, e.occurred_at)]),
3717
3742
  A("div", { class: "sparq-audit-item__meta" }, [e.actor?.avatar ? A("img", {
3718
3743
  class: "sparq-audit-item__avatar",
3719
3744
  src: e.actor.avatar,
3720
3745
  alt: e.actor.name ?? "actor"
3721
3746
  }) : void 0, A("span", e.actor?.name ?? "系统")]),
3722
3747
  e.summary ? A("p", { class: "sparq-audit-item__summary" }, e.summary) : void 0,
3723
- e.changes?.length ? rs(e.changes) : void 0
3748
+ e.changes?.length ? as(e.changes) : void 0
3724
3749
  ])]);
3725
3750
  }
3726
- function rs(e) {
3751
+ function as(e) {
3727
3752
  return A("details", { class: "sparq-audit-changes" }, [A("summary", `查看变更 (${e.length})`), A("div", { class: "sparq-audit-changes__table" }, e.flatMap((e) => [
3728
3753
  A("div", { class: "sparq-audit-changes__field" }, e.label ?? e.field),
3729
- A("div", { class: "sparq-audit-changes__before" }, Z(e.before)),
3730
- A("div", { class: "sparq-audit-changes__after" }, Z(e.after))
3754
+ A("div", { class: "sparq-audit-changes__before" }, Yo(e.before)),
3755
+ A("div", { class: "sparq-audit-changes__after" }, Yo(e.after))
3731
3756
  ]))]);
3732
3757
  }
3733
- function is(e, t) {
3734
- if (e.auditState.hasMore) return A("footer", { class: "sparq-audit-footer" }, [t.renderLoadMore?.(e) ?? os(e)]);
3758
+ function os(e, t) {
3759
+ if (e.auditState.hasMore) return A("footer", { class: "sparq-audit-footer" }, [t.renderLoadMore?.(e) ?? cs(e)]);
3735
3760
  }
3736
- function as(e) {
3761
+ function ss(e) {
3737
3762
  return A("button", {
3738
3763
  type: "button",
3739
3764
  disabled: e.auditState.loading,
@@ -3742,7 +3767,7 @@ function as(e) {
3742
3767
  }
3743
3768
  }, "刷新");
3744
3769
  }
3745
- function os(e) {
3770
+ function cs(e) {
3746
3771
  return A("button", {
3747
3772
  type: "button",
3748
3773
  disabled: e.auditState.loadingMore,
@@ -3753,33 +3778,33 @@ function os(e) {
3753
3778
  }
3754
3779
  //#endregion
3755
3780
  //#region src/shell/detail-shell.ts
3756
- function ss(e) {
3781
+ function ls(e) {
3757
3782
  return A("article", {
3758
3783
  ...e.detail.wrapper?.props,
3759
3784
  class: ["sparq-detail-shell", e.detail.wrapper?.props?.class],
3760
3785
  "data-sparq-detail-shell": "panel"
3761
- }, [cs(e), A("div", { class: "sparq-detail-shell__body" }, [e.children])]);
3786
+ }, [us(e), A("div", { class: "sparq-detail-shell__body" }, [e.children])]);
3762
3787
  }
3763
- function cs(e) {
3788
+ function us(e) {
3764
3789
  return A("header", { class: "sparq-detail-shell__header" }, [A("div", { class: "sparq-detail-shell__headline" }, [
3765
3790
  e.title ? A("h2", { class: "sparq-detail-shell__title" }, e.title) : void 0,
3766
- ls(e.meta),
3791
+ ds(e.meta),
3767
3792
  e.helpNode
3768
3793
  ]), e.actions ? A("div", { class: "sparq-detail-shell__actions" }, [e.actions]) : void 0]);
3769
3794
  }
3770
- function ls(e) {
3795
+ function ds(e) {
3771
3796
  if (!(!e?.updatedAt && !e?.updatedBy)) return A("p", { class: "sparq-detail-shell__meta" }, [e.updatedBy ? `更新人:${String(e.updatedBy)}` : void 0, e.updatedAt ? `更新时间:${String(e.updatedAt)}` : void 0].filter(Boolean).join(" · "));
3772
3797
  }
3773
3798
  //#endregion
3774
3799
  //#region src/render/audit.ts
3775
- function us(e, t) {
3776
- let n = fs(e);
3800
+ function fs(e, t) {
3801
+ let n = ms(e);
3777
3802
  if (!n) return;
3778
3803
  let r = {
3779
3804
  ...e,
3780
3805
  ...n,
3781
3806
  open() {
3782
- return e.controller?.openAudit(n.record), e.controller?.loadAudit(ms(e, n)) ?? Promise.resolve(void 0);
3807
+ return e.controller?.openAudit(n.record), e.controller?.loadAudit(gs(e, n)) ?? Promise.resolve(void 0);
3783
3808
  }
3784
3809
  };
3785
3810
  return t?.renderAuditTrigger?.(r) ?? A("button", {
@@ -3790,64 +3815,64 @@ function us(e, t) {
3790
3815
  }
3791
3816
  }, "审计记录");
3792
3817
  }
3793
- function ds(e, t) {
3818
+ function ps(e, t) {
3794
3819
  let n = e.controller?.auditState;
3795
3820
  if (!n?.open) return;
3796
- let r = fs(e, n.record), i = {
3821
+ let r = ms(e, n.record), i = {
3797
3822
  ...e,
3798
3823
  record: r?.record ?? n.record,
3799
3824
  id: r?.id,
3800
- primaryKey: r?.primaryKey ?? ps(e),
3825
+ primaryKey: r?.primaryKey ?? hs(e),
3801
3826
  auditState: n,
3802
3827
  close: e.controller?.closeAudit,
3803
3828
  refresh() {
3804
- return e.controller?.refreshAudit(ms(e, r)) ?? Promise.resolve(void 0);
3829
+ return e.controller?.refreshAudit(gs(e, r)) ?? Promise.resolve(void 0);
3805
3830
  },
3806
3831
  loadMore() {
3807
- return e.controller?.loadMoreAudit(ms(e, r)) ?? Promise.resolve(void 0);
3832
+ return e.controller?.loadMoreAudit(gs(e, r)) ?? Promise.resolve(void 0);
3808
3833
  }
3809
3834
  };
3810
- return t?.renderAuditPanel?.(i) ?? hs(i);
3835
+ return t?.renderAuditPanel?.(i) ?? _s(i);
3811
3836
  }
3812
- function fs(e, t) {
3813
- let n = ps(e), r = t ?? e.controller?.page.detailRecord ?? e.form?.values ?? e.controller?.getValues(), i = r?.[n];
3837
+ function ms(e, t) {
3838
+ let n = hs(e), r = t ?? e.controller?.page.detailRecord ?? e.form?.values ?? e.controller?.getValues(), i = r?.[n];
3814
3839
  if (!(!e.resource || !r || i == null || i === "")) return {
3815
3840
  record: r,
3816
3841
  id: i,
3817
3842
  primaryKey: n
3818
3843
  };
3819
3844
  }
3820
- function ps(e) {
3845
+ function hs(e) {
3821
3846
  return e.state.viewModel?.schema.primaryKey ?? e.state.schema?.schema.primaryKey ?? "id";
3822
3847
  }
3823
- function ms(e, t) {
3848
+ function gs(e, t) {
3824
3849
  return {
3825
3850
  runtime: e.runtime,
3826
3851
  resource: e.resource,
3827
3852
  view: e.state.viewName,
3828
3853
  payload: e.payload,
3829
- primaryKey: t?.primaryKey ?? ps(e),
3854
+ primaryKey: t?.primaryKey ?? hs(e),
3830
3855
  id: t?.id,
3831
3856
  record: t?.record
3832
3857
  };
3833
3858
  }
3834
- function hs(e) {
3859
+ function _s(e) {
3835
3860
  return A("aside", {
3836
3861
  class: "sparq-audit-panel",
3837
3862
  "data-sparq-audit-panel": ""
3838
3863
  }, [A("header", { class: "sparq-audit-panel__header" }, [A("strong", "审计记录"), A("button", {
3839
3864
  type: "button",
3840
3865
  onClick: () => e.close?.()
3841
- }, "关闭")]), Jo(e)]);
3866
+ }, "关闭")]), Xo(e)]);
3842
3867
  }
3843
3868
  //#endregion
3844
3869
  //#region src/render/view-structures.ts
3845
- function gs(e, t, n, r = {}) {
3870
+ function vs(e, t, n, r = {}) {
3846
3871
  let i = (e.mode === "form" ? e.viewModel?.forms.get(e.viewName) : void 0) ?? (e.view && "footer" in e.view ? e.view : void 0);
3847
3872
  if (!i) return G(e, t, n);
3848
3873
  let a = zi(t, r.embeddedInPage === !0), o = Bi(t, r.embeddedInPage === !0);
3849
3874
  if (!o) return;
3850
- let s = a === "dialog" || a === "drawer", c = s, l = Mc(i.children, t, n), u = ws(i.footer, t, n), d = r.hideFooter === !0 ? void 0 : u, f = W({
3875
+ let s = a === "dialog" || a === "drawer", c = s, l = Pc(i.children, t, n), u = Es(i.footer, t, n), d = r.hideFooter === !0 ? void 0 : u, f = W({
3851
3876
  ...t,
3852
3877
  kind: "form",
3853
3878
  title: s ? void 0 : i.title,
@@ -3859,7 +3884,7 @@ function gs(e, t, n, r = {}) {
3859
3884
  gap: i.gap
3860
3885
  },
3861
3886
  items: l,
3862
- children: Cs(l),
3887
+ children: Ts(l),
3863
3888
  footer: c ? void 0 : d
3864
3889
  }, n);
3865
3890
  return Li({
@@ -3875,15 +3900,15 @@ function gs(e, t, n, r = {}) {
3875
3900
  close: t.controller?.closeForm
3876
3901
  }, n);
3877
3902
  }
3878
- function _s(e, t, n) {
3903
+ function ys(e, t, n) {
3879
3904
  let r = (e.mode === "table" ? e.viewModel?.tables.get(e.viewName) : void 0) ?? (e.view && "columns" in e.view ? e.view : void 0);
3880
3905
  if (!r) return G(e, t, n);
3881
3906
  let i = r.toolbar.visible ? K("toolbar", [
3882
- K("toolbar-left", r.toolbar.left.map((e) => q(X(t, e, "toolbar-left"), n))),
3883
- K("toolbar-right", r.toolbar.right.map((e) => q(X(t, e, "toolbar-right"), n))),
3884
- K("toolbar-batch", r.toolbar.batch.map((e) => q(X(t, e, "batch"), n))),
3885
- K("toolbar-filters", r.toolbar.filters.map((e) => Ds(bo(t, e), n)))
3886
- ]) : void 0, a = Ts(r, t, n), o = n?.renderTable?.({
3907
+ K("toolbar-left", r.toolbar.left.map((e) => q(Z(t, e, "toolbar-left"), n))),
3908
+ K("toolbar-right", r.toolbar.right.map((e) => q(Z(t, e, "toolbar-right"), n))),
3909
+ K("toolbar-batch", r.toolbar.batch.map((e) => q(Z(t, e, "batch"), n))),
3910
+ K("toolbar-filters", r.toolbar.filters.map((e) => ks(So(t, e), n)))
3911
+ ]) : void 0, a = Ds(r, t, n), o = n?.renderTable?.({
3887
3912
  ...t,
3888
3913
  table: r,
3889
3914
  columns: a,
@@ -3907,22 +3932,22 @@ function _s(e, t, n) {
3907
3932
  ]
3908
3933
  }, n);
3909
3934
  }
3910
- function vs(e, t, n) {
3935
+ function bs(e, t, n) {
3911
3936
  let r = (e.mode === "search" ? e.viewModel?.searches.get(e.viewName) : void 0) ?? (e.view && "operation" in e.view ? e.view : void 0);
3912
3937
  if (!r) return G(e, t, n);
3913
- let i = r.items.filter((e) => ot(e.raw.show_when, xo(t))).map((e) => ({
3938
+ let i = r.items.filter((e) => at(e.raw.show_when, X(t))).map((e) => ({
3914
3939
  span: e.span,
3915
3940
  content: n?.renderSearchItem?.({
3916
3941
  ...t,
3917
3942
  item: e,
3918
- options: As(e.field, t, gt({
3943
+ options: Ms(e.field, t, ht({
3919
3944
  field: e.fieldSchema,
3920
3945
  dataSource: e.dataSource,
3921
3946
  mode: t.state.mode,
3922
3947
  formMode: t.controller?.page.formMode
3923
3948
  }).options)
3924
3949
  }) ?? J("renderSearchItem")
3925
- })), a = r.operation.actions.map((e) => q(X(t, e, "search-operation"), n)), o = r.operation.visible ? K("operation", a) : void 0;
3950
+ })), a = r.operation.actions.map((e) => q(Z(t, e, "search-operation"), n)), o = r.operation.visible ? K("operation", a) : void 0;
3926
3951
  return W({
3927
3952
  ...t,
3928
3953
  kind: "search",
@@ -3937,48 +3962,48 @@ function vs(e, t, n) {
3937
3962
  children: [K("items", i.map((e) => e.content)), o]
3938
3963
  }, n);
3939
3964
  }
3940
- function ys(e, t, n, r = {}) {
3965
+ function xs(e, t, n, r = {}) {
3941
3966
  let i = (e.mode === "detail" ? e.viewModel?.details.get(e.viewName) : void 0) ?? (e.view && "children" in e.view ? e.view : void 0);
3942
3967
  if (!i) return G(e, t, n);
3943
3968
  if (r.embeddedInPage && !t.controller?.page.detailOpen) return;
3944
- let a = r.embeddedInPage === !0, o = Vi(i, a), s = o === "dialog" || o === "drawer", c = Mc(i.children, t, n), l = W({
3969
+ let a = r.embeddedInPage === !0, o = Vi(i, a), s = o === "dialog" || o === "drawer", c = Pc(i.children, t, n), l = W({
3945
3970
  ...t,
3946
3971
  kind: "detail",
3947
3972
  title: s ? void 0 : i.title,
3948
3973
  help: s ? void 0 : i.help,
3949
3974
  helpNode: s ? void 0 : Q(i.help, "detail", t),
3950
- props: js(i.props, "sparq-detail"),
3975
+ props: Ns(i.props, "sparq-detail"),
3951
3976
  layout: {
3952
3977
  span: i.span ?? 12,
3953
3978
  gap: i.gap ?? 16
3954
3979
  },
3955
3980
  items: c,
3956
- children: K("fields", Nc(c))
3981
+ children: K("fields", Fc(c))
3957
3982
  }, n);
3958
3983
  return [Ri({
3959
3984
  ...t,
3960
3985
  detail: i,
3961
- title: bs(i.title, t),
3986
+ title: Ss(i.title, t),
3962
3987
  help: i.help,
3963
3988
  helpNode: Q(i.help, "detail-shell", t),
3964
3989
  children: l,
3965
- actions: us(t, n),
3966
- meta: xs(t),
3990
+ actions: fs(t, n),
3991
+ meta: Cs(t),
3967
3992
  presentation: o,
3968
3993
  open: a ? t.controller?.page.detailOpen ?? !1 : !0,
3969
3994
  close: a ? t.controller?.closeDetail : void 0
3970
- }, n), ds(t, n)];
3995
+ }, n), ps(t, n)];
3971
3996
  }
3972
- function bs(e, t) {
3997
+ function Ss(e, t) {
3973
3998
  return e ?? t.state.viewModel?.schema.title ?? t.state.schema?.schema.title ?? t.state.schema?.resource?.title;
3974
3999
  }
3975
- function xs(e) {
3976
- let t = e.controller?.page.detailRecord ?? e.form?.values ?? e.controller?.getValues(), n = Ss(t, [
4000
+ function Cs(e) {
4001
+ let t = e.controller?.page.detailRecord ?? e.form?.values ?? e.controller?.getValues(), n = ws(t, [
3977
4002
  "updated_at",
3978
4003
  "updatedAt",
3979
4004
  "modified_at",
3980
4005
  "modifiedAt"
3981
- ]), r = Ss(t, [
4006
+ ]), r = ws(t, [
3982
4007
  "_updated_by_label",
3983
4008
  "updated_by_name",
3984
4009
  "updatedByName",
@@ -3992,53 +4017,53 @@ function xs(e) {
3992
4017
  updatedBy: r
3993
4018
  } : void 0;
3994
4019
  }
3995
- function Ss(e, t) {
4020
+ function ws(e, t) {
3996
4021
  if (e) for (let n of t) {
3997
4022
  let t = e[n];
3998
4023
  if (t != null && t !== "") return t;
3999
4024
  }
4000
4025
  }
4001
- function Cs(e) {
4002
- return K("fields", Nc(e));
4026
+ function Ts(e) {
4027
+ return K("fields", Fc(e));
4003
4028
  }
4004
- function ws(e, t, n) {
4005
- if (e.visible) return K("footer", e.actions.map((e) => q(X(t, e, "form-footer"), n)), e.props);
4029
+ function Es(e, t, n) {
4030
+ if (e.visible) return K("footer", e.actions.map((e) => q(Z(t, e, "form-footer"), n)), e.props);
4006
4031
  }
4007
- function Ts(e, t, n) {
4032
+ function Ds(e, t, n) {
4008
4033
  let r = [];
4009
- return e.selection.visible && r.push(Es({
4034
+ return e.selection.visible && r.push(Os({
4010
4035
  ...t,
4011
4036
  kind: "selection",
4012
4037
  selection: e.selection
4013
- }, n)), e.index.visible && r.push(Es({
4038
+ }, n)), e.index.visible && r.push(Os({
4014
4039
  ...t,
4015
4040
  kind: "index",
4016
4041
  index: e.index
4017
- }, n)), r.push(...e.columns.filter((e) => ot(e.raw.show_when, xo(t))).map((e) => Es({
4042
+ }, n)), r.push(...e.columns.filter((e) => at(e.raw.show_when, X(t))).map((e) => Os({
4018
4043
  ...t,
4019
4044
  kind: "data",
4020
4045
  column: e,
4021
4046
  renderCell(n) {
4022
- return Os(e, n, t);
4047
+ return As(e, n, t);
4023
4048
  }
4024
- }, n))), e.operate.visible && r.push(Es({
4049
+ }, n))), e.operate.visible && r.push(Os({
4025
4050
  ...t,
4026
4051
  kind: "operate",
4027
4052
  operate: e.operate,
4028
- actions: e.operate.actions.map((e) => q(X(t, e, "operate"), n)),
4053
+ actions: e.operate.actions.map((e) => q(Z(t, e, "operate"), n)),
4029
4054
  renderActions(r) {
4030
- return e.operate.actions.map((e) => q(X(t, e, "operate", r), n));
4055
+ return e.operate.actions.map((e) => q(Z(t, e, "operate", r), n));
4031
4056
  }
4032
4057
  }, n)), r;
4033
4058
  }
4034
- function Es(e, t) {
4059
+ function Os(e, t) {
4035
4060
  return t?.renderTableColumn?.(e) ?? J("renderTableColumn");
4036
4061
  }
4037
- function Ds(e, t) {
4062
+ function ks(e, t) {
4038
4063
  return t?.renderTableFilter?.(e) ?? J("renderTableFilter");
4039
4064
  }
4040
- function Os(e, t, n) {
4041
- let r = ks(e, t, n), i = As(e.field, n, e.fieldSchema ? gt({
4065
+ function As(e, t, n) {
4066
+ let r = js(e, t, n), i = Ms(e.field, n, e.fieldSchema ? ht({
4042
4067
  field: e.fieldSchema,
4043
4068
  dataSource: void 0,
4044
4069
  mode: n.state.mode,
@@ -4050,7 +4075,7 @@ function Os(e, t, n) {
4050
4075
  props: e.props,
4051
4076
  value: r,
4052
4077
  record: t,
4053
- text: Z(r),
4078
+ text: Yo(r),
4054
4079
  options: i,
4055
4080
  column: e
4056
4081
  }, void 0, {
@@ -4064,16 +4089,16 @@ function Os(e, t, n) {
4064
4089
  resource: n.resource,
4065
4090
  diagnostics: n.diagnostics,
4066
4091
  field: e.fieldSchema
4067
- }) : void 0) ?? Z(r);
4092
+ }) : void 0) ?? Yo(r);
4068
4093
  }
4069
- function ks(e, t, n) {
4070
- let r = xo(n, t);
4071
- return e.value ? st(e.value, r) : e.template ? dt(e.template, r) : e.field ? t[e.field] : void 0;
4094
+ function js(e, t, n) {
4095
+ let r = X(n, t);
4096
+ return e.value ? ot(e.value, r) : e.template ? ut(e.template, r) : e.field ? t[e.field] : void 0;
4072
4097
  }
4073
- function As(e, t, n) {
4098
+ function Ms(e, t, n) {
4074
4099
  return e && t.form?.options && Object.prototype.hasOwnProperty.call(t.form.options, e) ? t.form.options[e] ?? [] : n;
4075
4100
  }
4076
- function js(e, t) {
4101
+ function Ns(e, t) {
4077
4102
  return {
4078
4103
  ...e,
4079
4104
  class: [t, e?.class]
@@ -4081,33 +4106,33 @@ function js(e, t) {
4081
4106
  }
4082
4107
  //#endregion
4083
4108
  //#region src/render/embedded-view.ts
4084
- var Ms = /* @__PURE__ */ new WeakMap(), Ns = /* @__PURE__ */ new WeakMap();
4085
- function Ps(e, t, n) {
4109
+ var Ps = /* @__PURE__ */ new WeakMap(), Fs = /* @__PURE__ */ new WeakMap();
4110
+ function Is(e, t, n) {
4086
4111
  let r = e.binding;
4087
4112
  if (e.type !== "view" || r?.type !== "relation-list") return;
4088
- let i = dc(r, t);
4089
- if (pt(r, i) && r.whenParentMissing === "hidden") return;
4090
- let a = Fs(e, r, i, t);
4091
- if (a.status === "loading") return fc(e, t, "正在加载关联数据...", "info", n);
4092
- if (a.status === "error" || !a.controller || !a.table) return fc(e, t, hc(a.error), "error", n);
4093
- let o = Gs(e, r, i, a, t);
4113
+ let i = pc(r, t);
4114
+ if (ft(r, i) && r.whenParentMissing === "hidden") return;
4115
+ let a = Ls(e, r, i, t);
4116
+ if (a.status === "loading") return mc(e, t, "正在加载关联数据...", "info", n);
4117
+ if (a.status === "error" || !a.controller || !a.table) return mc(e, t, _c(a.error), "error", n);
4118
+ let o = qs(e, r, i, a, t);
4094
4119
  return [
4095
- pt(r, i) ? pc(o, "请先保存主记录,再管理关联资源。", "warning") : void 0,
4096
- zs(e, a.table, a.controller, o, n, !0),
4097
- Ys(e, r, i, a, t, n)
4120
+ ft(r, i) ? hc(o, "请先保存主记录,再管理关联资源。", "warning") : void 0,
4121
+ Vs(e, a.table, a.controller, o, n, !0),
4122
+ Zs(e, r, i, a, t, n)
4098
4123
  ];
4099
4124
  }
4100
- function Fs(e, t, n, r) {
4101
- let i = r.controller ?? r.state, a = Ms.get(i);
4102
- a || (a = /* @__PURE__ */ new Map(), Ms.set(i, a));
4125
+ function Ls(e, t, n, r) {
4126
+ let i = r.controller ?? r.state, a = Ps.get(i);
4127
+ a || (a = /* @__PURE__ */ new Map(), Ps.set(i, a));
4103
4128
  let o = D(t, e.raw.resource, r.resource), s = [
4104
4129
  e.id,
4105
4130
  o,
4106
4131
  e.raw.view ?? "default"
4107
4132
  ].join(":"), c = [
4108
4133
  s,
4109
- vc(t),
4110
- vc(n)
4134
+ bc(t),
4135
+ bc(n)
4111
4136
  ].join(":"), l = a.get(c);
4112
4137
  if (l) return l;
4113
4138
  for (let e of a.keys()) e.startsWith(`${s}:`) && a.delete(e);
@@ -4116,44 +4141,44 @@ function Fs(e, t, n, r) {
4116
4141
  pickerOpen: !1,
4117
4142
  selectionExecuting: !1
4118
4143
  });
4119
- return a.set(c, u), u.initialization = Is(u, e, t, n, o, r), u;
4144
+ return a.set(c, u), u.initialization = Rs(u, e, t, n, o, r), u;
4120
4145
  }
4121
- async function Is(e, t, n, r, i, a) {
4146
+ async function Rs(e, t, n, r, i, a) {
4122
4147
  try {
4123
- let o = await Ls(i, n, r, a), s = o === a.state.schema ? a.state.viewModel : a.runtime.buildViewModel(o);
4148
+ let o = await zs(i, n, r, a), s = o === a.state.schema ? a.state.viewModel : a.runtime.buildViewModel(o);
4124
4149
  if (!s) throw Error(`目标资源 "${i}" 无法构建视图模型。`);
4125
4150
  let c = t.raw.view ?? "default", l = s.tables.get(c) ?? a.state.viewModel?.tables.get(c);
4126
4151
  if (!l) throw Error(`目标资源 "${i}" 未配置表格视图 "${c}"。`);
4127
- let u = rc(ec(l, n), n), d = i === a.resource || !!a.runtime.options.dataAdapter?.loadSchema, f = {}, p = {};
4128
- if (d) for (let e of tc) {
4129
- if (E(n, e).type !== "form") continue;
4130
- let t = yt(n, e, "default"), r = s.forms.get(t);
4152
+ let u = ac(nc(l, n), n), d = i === a.resource || !!a.runtime.options.dataAdapter?.loadSchema, f = {}, p = {};
4153
+ if (d) for (let e of rc) {
4154
+ if (yt(n, e).type !== "form") continue;
4155
+ let t = vt(n, e, "default"), r = s.forms.get(t);
4131
4156
  r && (f[e] = r, p[e] = t);
4132
4157
  }
4133
- let m = n.pagination?.pageSize ?? u.pagination.pageSize, h = Do({
4158
+ let m = n.pagination?.pageSize ?? u.pagination.pageSize, h = Oo({
4134
4159
  schema: s.schema,
4135
4160
  initialPageSize: m
4136
- }), g = Do({
4161
+ }), g = Oo({
4137
4162
  schema: s.schema,
4138
4163
  initialPageSize: m
4139
4164
  });
4140
- e.schema = o, e.viewModel = s, e.table = u, e.operationForms = f, e.operationFormNames = p, e.controller = h, e.pickerController = g, e.status = "ready", n.query?.sorts?.length && (h.table.setSort(n.query.sorts), g.table.setSort(n.query.sorts)), !pt(n, r) && a.runtime.options.dataAdapter?.list && await Rs(t, n, r, e, a);
4165
+ e.schema = o, e.viewModel = s, e.table = u, e.operationForms = f, e.operationFormNames = p, e.controller = h, e.pickerController = g, e.status = "ready", n.query?.sorts?.length && (h.table.setSort(n.query.sorts), g.table.setSort(n.query.sorts)), !ft(n, r) && a.runtime.options.dataAdapter?.list && await Bs(t, n, r, e, a);
4141
4166
  } catch (t) {
4142
4167
  e.error = t, e.status = "error";
4143
4168
  }
4144
4169
  }
4145
- async function Ls(e, t, n, r) {
4170
+ async function zs(e, t, n, r) {
4146
4171
  if (e === r.resource || !r.runtime.options.dataAdapter?.loadSchema) {
4147
4172
  if (!r.state.schema) throw Error(`目标资源 "${e}" 缺少 Schema。`);
4148
4173
  return r.state.schema;
4149
4174
  }
4150
- let i = Ns.get(r.runtime);
4151
- i || (i = /* @__PURE__ */ new Map(), Ns.set(r.runtime, i));
4175
+ let i = Fs.get(r.runtime);
4176
+ i || (i = /* @__PURE__ */ new Map(), Fs.set(r.runtime, i));
4152
4177
  let a = i.get(e);
4153
4178
  if (a) return a;
4154
4179
  let o = r.runtime.loadSchema({
4155
4180
  resource: e,
4156
- payload: T(t, n, void 0, r.payload)
4181
+ payload: E(t, n, void 0, r.payload)
4157
4182
  });
4158
4183
  i.set(e, o);
4159
4184
  try {
@@ -4162,19 +4187,19 @@ async function Ls(e, t, n, r) {
4162
4187
  throw i.delete(e), t;
4163
4188
  }
4164
4189
  }
4165
- async function Rs(e, t, n, r, i) {
4190
+ async function Bs(e, t, n, r, i) {
4166
4191
  if (!(!r.controller || !r.table)) return r.controller.table.reload({
4167
4192
  runtime: i.runtime,
4168
4193
  resource: D(t, e.raw.resource, i.resource),
4169
4194
  view: e.raw.view ?? "default",
4170
4195
  tableMode: r.table.mode,
4171
4196
  tableTree: r.table.tree,
4172
- filters: et(t, n),
4173
- payload: T(t, n, void 0, i.payload)
4197
+ filters: $e(t, n),
4198
+ payload: E(t, n, void 0, i.payload)
4174
4199
  });
4175
4200
  }
4176
- function zs(e, t, n, r, i, a) {
4177
- let o = Vs(e, t, r, i), s = Hs(e, t, r, i), c = a ? Bs(r, i) : void 0, l = i?.renderTable?.({
4201
+ function Vs(e, t, n, r, i, a) {
4202
+ let o = Us(e, t, r, i), s = Ws(e, t, r, i), c = a ? Hs(r, i) : void 0, l = i?.renderTable?.({
4178
4203
  ...r,
4179
4204
  table: t,
4180
4205
  columns: s,
@@ -4201,7 +4226,7 @@ function zs(e, t, n, r, i, a) {
4201
4226
  ]
4202
4227
  }, i);
4203
4228
  }
4204
- function Bs(e, t) {
4229
+ function Hs(e, t) {
4205
4230
  let n = e.controller, r = n?.page.formMode === "edit" ? e.pageUpdateForm : e.pageCreateForm, i = n?.page.formMode === "edit" ? e.pageUpdateFormName : e.pageCreateFormName;
4206
4231
  if (!n?.page.formOpen || !r || !i) return;
4207
4232
  let a = {
@@ -4210,52 +4235,52 @@ function Bs(e, t) {
4210
4235
  viewName: i,
4211
4236
  view: r
4212
4237
  };
4213
- return gs(a, {
4238
+ return vs(a, {
4214
4239
  ...e,
4215
4240
  state: a,
4216
4241
  form: n.form
4217
4242
  }, t, { embeddedInPage: !0 });
4218
4243
  }
4219
- function Vs(e, t, n, r) {
4244
+ function Us(e, t, n, r) {
4220
4245
  if (t.toolbar.visible) return K("toolbar", [
4221
- K("toolbar-left", t.toolbar.left.map((t) => q(Ws(e, n, t, "toolbar-left"), r))),
4222
- K("toolbar-right", t.toolbar.right.map((t) => q(Ws(e, n, t, "toolbar-right"), r))),
4223
- K("toolbar-batch", t.toolbar.batch.map((t) => q(Ws(e, n, t, "batch"), r)))
4246
+ K("toolbar-left", t.toolbar.left.map((t) => q(Ks(e, n, t, "toolbar-left"), r))),
4247
+ K("toolbar-right", t.toolbar.right.map((t) => q(Ks(e, n, t, "toolbar-right"), r))),
4248
+ K("toolbar-batch", t.toolbar.batch.map((t) => q(Ks(e, n, t, "batch"), r)))
4224
4249
  ]);
4225
4250
  }
4226
- function Hs(e, t, n, r) {
4251
+ function Ws(e, t, n, r) {
4227
4252
  let i = [];
4228
- return t.selection.visible && i.push(Us({
4253
+ return t.selection.visible && i.push(Gs({
4229
4254
  ...n,
4230
4255
  kind: "selection",
4231
4256
  selection: t.selection
4232
- }, r)), t.index.visible && i.push(Us({
4257
+ }, r)), t.index.visible && i.push(Gs({
4233
4258
  ...n,
4234
4259
  kind: "index",
4235
4260
  index: t.index
4236
- }, r)), i.push(...t.columns.map((e) => Us({
4261
+ }, r)), i.push(...t.columns.map((e) => Gs({
4237
4262
  ...n,
4238
4263
  kind: "data",
4239
4264
  column: e,
4240
4265
  renderCell(t) {
4241
- return yc(e.field ? t[e.field] : void 0);
4266
+ return xc(e.field ? t[e.field] : void 0);
4242
4267
  }
4243
- }, r))), t.operate.visible && i.push(Us({
4268
+ }, r))), t.operate.visible && i.push(Gs({
4244
4269
  ...n,
4245
4270
  kind: "operate",
4246
4271
  operate: t.operate,
4247
- actions: t.operate.actions.map((t) => q(Ws(e, n, t, "operate"), r)),
4272
+ actions: t.operate.actions.map((t) => q(Ks(e, n, t, "operate"), r)),
4248
4273
  renderActions(i) {
4249
- return t.operate.actions.map((t) => q(Ws(e, n, t, "operate", i), r));
4274
+ return t.operate.actions.map((t) => q(Ks(e, n, t, "operate", i), r));
4250
4275
  }
4251
4276
  }, r)), i;
4252
4277
  }
4253
- function Us(e, t) {
4278
+ function Gs(e, t) {
4254
4279
  return t?.renderTableColumn?.(e) ?? J("renderTableColumn");
4255
4280
  }
4256
- function Ws(e, t, n, r, i) {
4257
- let a = e.binding, o = lc(n.action), s = a?.type === "relation-list" && pt(a, dc(a, t)), c = !o || a?.type !== "relation-list" || ft(a, o);
4258
- return X(t, {
4281
+ function Ks(e, t, n, r, i) {
4282
+ let a = e.binding, o = dc(n.action), s = a?.type === "relation-list" && ft(a, pc(a, t)), c = !o || a?.type !== "relation-list" || dt(a, o);
4283
+ return Z(t, {
4259
4284
  ...n,
4260
4285
  props: {
4261
4286
  ...n.props,
@@ -4264,8 +4289,8 @@ function Ws(e, t, n, r, i) {
4264
4289
  }
4265
4290
  }, r, i);
4266
4291
  }
4267
- function Gs(e, t, n, r, i) {
4268
- let a = D(t, e.raw.resource, i.resource), o = r.table, s = pt(t, n) ? void 0 : et(t, n), c = r.activeOperation ? r.operationForms?.[r.activeOperation] : void 0, l = r.activeOperation ? r.operationFormNames?.[r.activeOperation] : void 0;
4292
+ function qs(e, t, n, r, i) {
4293
+ let a = D(t, e.raw.resource, i.resource), o = r.table, s = ft(t, n) ? void 0 : $e(t, n), c = r.activeOperation ? r.operationForms?.[r.activeOperation] : void 0, l = r.activeOperation ? r.operationFormNames?.[r.activeOperation] : void 0;
4269
4294
  return {
4270
4295
  ...i,
4271
4296
  state: {
@@ -4281,14 +4306,14 @@ function Gs(e, t, n, r, i) {
4281
4306
  tableReloadTree: o.tree
4282
4307
  },
4283
4308
  resource: a,
4284
- payload: T(t, n, void 0, i.payload),
4309
+ payload: E(t, n, void 0, i.payload),
4285
4310
  controller: r.controller,
4286
4311
  form: r.controller?.form,
4287
4312
  pageCreateForm: c ?? r.operationForms?.create,
4288
4313
  pageCreateFormName: l ?? r.operationFormNames?.create,
4289
4314
  pageUpdateForm: c ?? r.operationForms?.update,
4290
4315
  pageUpdateFormName: l ?? r.operationFormNames?.update,
4291
- onAction: Ks(e, t, n, r, i),
4316
+ onAction: Js(e, t, n, r, i),
4292
4317
  tableReloadFilters: s,
4293
4318
  resolveTableReloadView() {
4294
4319
  return e.raw.view ?? "default";
@@ -4304,33 +4329,33 @@ function Gs(e, t, n, r, i) {
4304
4329
  }
4305
4330
  };
4306
4331
  }
4307
- function Ks(e, t, n, r, a) {
4332
+ function Js(e, t, n, r, a) {
4308
4333
  return async (o) => {
4309
- let s = lc(o.action.action), c = s ?? (o.action.action === i ? r.activeOperation : void 0), l = s ? o.record : r.activeRecord, u = await a.onAction?.({
4334
+ let s = dc(o.action.action), c = s ?? (o.action.action === i ? r.activeOperation : void 0), l = s ? o.record : r.activeRecord, u = await a.onAction?.({
4310
4335
  ...o,
4311
- payload: Zs(t, n, c, a.payload, l)
4336
+ payload: $s(t, n, c, a.payload, l)
4312
4337
  });
4313
- if (u === !1 || _c(u)) return u;
4338
+ if (u === !1 || yc(u)) return u;
4314
4339
  if (s) {
4315
- let i = E(t, s);
4316
- if (i.type === "form") return await qs(e, t, n, s, o.record, r, a), { handled: !0 };
4317
- if (i.type === "selection") return await Js(e, t, n, s, o.action, o.record, r, a), { handled: !0 };
4318
- if (i.type === "handler" && !a.runtime.options.registries?.actionHandlers.has(i.handler)) return await mc(a, `关系操作交互处理器 "${i.handler}" 未注册或未由宿主处理。`), { handled: !0 };
4340
+ let i = yt(t, s);
4341
+ if (i.type === "form") return await Ys(e, t, n, s, o.record, r, a), { handled: !0 };
4342
+ if (i.type === "selection") return await Xs(e, t, n, s, o.action, o.record, r, a), { handled: !0 };
4343
+ if (i.type === "handler" && !a.runtime.options.registries?.actionHandlers.has(i.handler)) return await gc(a, `关系操作交互处理器 "${i.handler}" 未注册或未由宿主处理。`), { handled: !0 };
4319
4344
  }
4320
- return o.action.action === i && t.foreignKey && !t.through && (t.relationType === void 0 || t.relationType === "has-many") && r.controller?.setValue(t.foreignKey, n), { payload: Zs(t, n, c ?? uc(r.controller), gc(u) ?? a.payload, l) };
4345
+ return o.action.action === i && t.foreignKey && !t.through && (t.relationType === void 0 || t.relationType === "has-many") && r.controller?.setValue(t.foreignKey, n), { payload: $s(t, n, c ?? fc(r.controller), vc(u) ?? a.payload, l) };
4321
4346
  };
4322
4347
  }
4323
- async function qs(e, t, n, r, i, a, o) {
4348
+ async function Ys(e, t, n, r, i, a, o) {
4324
4349
  let s = a.controller, c = a.operationForms?.[r];
4325
4350
  if (!s || !c) {
4326
- await mc(o, `目标资源未配置 ${r} 操作使用的表单。`);
4351
+ await gc(o, `目标资源未配置 ${r} 操作使用的表单。`);
4327
4352
  return;
4328
4353
  }
4329
- let l = E(t, r);
4354
+ let l = yt(t, r);
4330
4355
  if (l.type !== "form") return;
4331
4356
  if ((l.mode ?? (r === "create" ? "create" : "edit")) === "edit") {
4332
4357
  if (!i) {
4333
- await mc(o, `${r} 操作需要当前行记录。`);
4358
+ await gc(o, `${r} 操作需要当前行记录。`);
4334
4359
  return;
4335
4360
  }
4336
4361
  a.activeOperation = r, a.activeRecord = i, s.openEditForm(i), await s.loadEditForm({
@@ -4340,38 +4365,38 @@ async function qs(e, t, n, r, i, a, o) {
4340
4365
  form: c,
4341
4366
  primaryKey: a.viewModel?.schema.primaryKey ?? "id",
4342
4367
  record: i,
4343
- payload: T(t, n, r, o.payload)
4368
+ payload: E(t, n, r, o.payload)
4344
4369
  });
4345
4370
  return;
4346
4371
  }
4347
4372
  a.activeOperation = r, a.activeRecord = i, s.openCreateForm();
4348
- let u = Qe({
4373
+ let u = Ze({
4349
4374
  schema: a.schema?.schema,
4350
4375
  nodes: c.children
4351
4376
  });
4352
4377
  t.foreignKey && !t.through && (t.relationType === void 0 || t.relationType === "has-many") && (u[t.foreignKey] = n), s.setValues(u);
4353
4378
  }
4354
- async function Js(e, t, n, r, i, a, o, s) {
4355
- let c = E(t, r), l = St(t, r, e.raw.view ?? "default"), u = o.viewModel?.tables.get(l) ?? o.table;
4379
+ async function Xs(e, t, n, r, i, a, o, s) {
4380
+ let c = yt(t, r), l = St(t, r, e.raw.view ?? "default"), u = o.viewModel?.tables.get(l) ?? o.table;
4356
4381
  if (!o.pickerController || !u || c.type !== "selection") {
4357
- await mc(s, "目标资源未配置选择视图。");
4382
+ await gc(s, "目标资源未配置选择视图。");
4358
4383
  return;
4359
4384
  }
4360
- o.pickerTable = Qs(u, c.multiple !== !1), o.pickerOperation = r, o.pickerAction = i, o.pickerRecord = a, o.pickerOpen = !0, o.pickerController.table.changeSelection([]), await o.pickerController.table.reload({
4385
+ o.pickerTable = ec(u, c.multiple !== !1), o.pickerOperation = r, o.pickerAction = i, o.pickerRecord = a, o.pickerOpen = !0, o.pickerController.table.changeSelection([]), await o.pickerController.table.reload({
4361
4386
  runtime: s.runtime,
4362
4387
  resource: D(t, e.raw.resource, s.resource),
4363
4388
  view: l,
4364
4389
  tableMode: o.pickerTable.mode,
4365
4390
  tableTree: o.pickerTable.tree,
4366
- filters: tt(t, n, r),
4367
- payload: T(t, n, r, s.payload)
4391
+ filters: et(t, n, r),
4392
+ payload: E(t, n, r, s.payload)
4368
4393
  });
4369
4394
  }
4370
- function Ys(e, t, n, r, i, a) {
4395
+ function Zs(e, t, n, r, i, a) {
4371
4396
  if (!r.pickerOpen || !r.pickerController || !r.pickerTable || !r.pickerOperation) return;
4372
- let o = r.pickerOperation, s = E(t, o);
4397
+ let o = r.pickerOperation, s = yt(t, o);
4373
4398
  if (s.type !== "selection") return;
4374
- let c = D(t, e.raw.resource, i.resource), l = St(t, o, e.raw.view ?? "default"), u = tt(t, n, o), d = {
4399
+ let c = D(t, e.raw.resource, i.resource), l = St(t, o, e.raw.view ?? "default"), u = et(t, n, o), d = {
4375
4400
  ...i,
4376
4401
  state: {
4377
4402
  ...i.state,
@@ -4385,7 +4410,7 @@ function Ys(e, t, n, r, i, a) {
4385
4410
  resource: c,
4386
4411
  controller: r.pickerController,
4387
4412
  form: r.pickerController.form,
4388
- payload: T(t, n, o, i.payload),
4413
+ payload: E(t, n, o, i.payload),
4389
4414
  tableReloadFilters: u,
4390
4415
  resolveTableReloadView() {
4391
4416
  return l;
@@ -4399,9 +4424,9 @@ function Ys(e, t, n, r, i, a) {
4399
4424
  resolveTableReloadFilters() {
4400
4425
  return u;
4401
4426
  }
4402
- }, f = zs(e, r.pickerTable, r.pickerController, d, a, !1), p = s.multiple !== !1, m = r.pickerController.table.state.selection.filter(bc), h = p ? m : m.slice(-1), g = [q(cc(d, sc("relation.selection.cancel", "取消"), () => {
4427
+ }, f = Vs(e, r.pickerTable, r.pickerController, d, a, !1), p = s.multiple !== !1, m = r.pickerController.table.state.selection.filter(Sc), h = p ? m : m.slice(-1), g = [q(uc(d, lc("relation.selection.cancel", "取消"), () => {
4403
4428
  r.pickerOpen = !1;
4404
- }), a), q(cc(d, sc("relation.selection.confirm", $s(o, r.pickerAction?.title), "primary", h.length === 0, r.selectionExecuting), () => Xs(e, t, n, o, h, r, i)), a)], _ = oc(r.pickerTable.title ?? r.pickerAction?.title ?? e.raw.title ?? "选择资源");
4429
+ }), a), q(uc(d, lc("relation.selection.confirm", tc(o, r.pickerAction?.title), "primary", h.length === 0, r.selectionExecuting), () => Qs(e, t, n, o, h, r, i)), a)], _ = cc(r.pickerTable.title ?? r.pickerAction?.title ?? e.raw.title ?? "选择资源");
4405
4430
  return Li({
4406
4431
  ...d,
4407
4432
  formView: _,
@@ -4415,7 +4440,7 @@ function Ys(e, t, n, r, i, a) {
4415
4440
  }
4416
4441
  }, a);
4417
4442
  }
4418
- async function Xs(e, t, n, r, i, a, o) {
4443
+ async function Qs(e, t, n, r, i, a, o) {
4419
4444
  if (i.length === 0 || a.selectionExecuting) return;
4420
4445
  let s = D(t, e.raw.resource, o.resource), c = a.pickerAction;
4421
4446
  if (!(c?.confirm && o.runtime.options.confirmAction && !await o.runtime.options.confirmAction({
@@ -4428,13 +4453,13 @@ async function Xs(e, t, n, r, i, a, o) {
4428
4453
  viewName: St(t, r, e.raw.view ?? "default"),
4429
4454
  view: St(t, r, e.raw.view ?? "default"),
4430
4455
  selection: i,
4431
- payload: T(t, n, r, o.payload)
4456
+ payload: E(t, n, r, o.payload)
4432
4457
  }
4433
4458
  }))) {
4434
4459
  a.selectionExecuting = !0;
4435
4460
  try {
4436
4461
  let c = a.viewModel?.schema.primaryKey ?? "id";
4437
- await ct({
4462
+ await st({
4438
4463
  operation: r,
4439
4464
  binding: t,
4440
4465
  runtime: o.runtime,
@@ -4447,22 +4472,22 @@ async function Xs(e, t, n, r, i, a, o) {
4447
4472
  payload: o.payload
4448
4473
  }), a.pickerOpen = !1, a.pickerController?.table.changeSelection([]);
4449
4474
  let l = xt(t, r);
4450
- return l === "none" ? void 0 : (l === "reload-first" && a.controller?.table.setPagination({ page: 1 }), Rs(e, t, n, a, o));
4475
+ return l === "none" ? void 0 : (l === "reload-first" && a.controller?.table.setPagination({ page: 1 }), Bs(e, t, n, a, o));
4451
4476
  } catch (e) {
4452
- a.error = e, await mc(o, hc(e), e);
4477
+ a.error = e, await gc(o, _c(e), e);
4453
4478
  return;
4454
4479
  } finally {
4455
4480
  a.selectionExecuting = !1;
4456
4481
  }
4457
4482
  }
4458
4483
  }
4459
- function Zs(e, t, n, r, i) {
4484
+ function $s(e, t, n, r, i) {
4460
4485
  return {
4461
- ...T(e, t, n, r),
4486
+ ...E(e, t, n, r),
4462
4487
  operationRecord: i
4463
4488
  };
4464
4489
  }
4465
- function Qs(e, t) {
4490
+ function ec(e, t) {
4466
4491
  return {
4467
4492
  ...e,
4468
4493
  selection: {
@@ -4484,10 +4509,10 @@ function Qs(e, t) {
4484
4509
  }
4485
4510
  };
4486
4511
  }
4487
- function $s(e, t) {
4512
+ function tc(e, t) {
4488
4513
  return e === "attach" ? "确认关联" : e === "detach" ? "确认解除关联" : e === "delete" ? "确认删除" : `确认${t ?? "执行"}`;
4489
4514
  }
4490
- function ec(e, t) {
4515
+ function nc(e, t) {
4491
4516
  return {
4492
4517
  ...e,
4493
4518
  toolbar: {
@@ -4501,15 +4526,15 @@ function ec(e, t) {
4501
4526
  }
4502
4527
  };
4503
4528
  }
4504
- var tc = [
4529
+ var rc = [
4505
4530
  "create",
4506
4531
  "attach",
4507
4532
  "update",
4508
4533
  "detach",
4509
4534
  "delete"
4510
- ], nc = new Set(tc);
4511
- function rc(e, t) {
4512
- let n = ic(t, "toolbar"), r = ic(t, "row"), i = [...n, ...ac(e.toolbar.left)], a = ac(e.toolbar.right), o = [...r, ...ac(e.operate.actions)];
4535
+ ], ic = new Set(rc);
4536
+ function ac(e, t) {
4537
+ let n = oc(t, "toolbar"), r = oc(t, "row"), i = [...n, ...sc(e.toolbar.left)], a = sc(e.toolbar.right), o = [...r, ...sc(e.operate.actions)];
4513
4538
  return {
4514
4539
  ...e,
4515
4540
  toolbar: {
@@ -4522,16 +4547,16 @@ function rc(e, t) {
4522
4547
  operate: {
4523
4548
  ...e.operate,
4524
4549
  visible: o.length > 0,
4525
- width: e.operate.width ?? ut(o),
4550
+ width: e.operate.width ?? lt(o),
4526
4551
  actions: o
4527
4552
  }
4528
4553
  };
4529
4554
  }
4530
- function ic(e, t) {
4531
- return tc.map((n) => {
4532
- let r = vt(e, n);
4555
+ function oc(e, t) {
4556
+ return rc.map((n) => {
4557
+ let r = _t(e, n);
4533
4558
  if (!r || r.enabled === !1 || bt(e, n) !== t) return;
4534
- let i = mt({
4559
+ let i = pt({
4535
4560
  ref: {
4536
4561
  action: n,
4537
4562
  title: r.title,
@@ -4543,17 +4568,17 @@ function ic(e, t) {
4543
4568
  defaultScope: t === "toolbar" ? "collection" : "record"
4544
4569
  }).action;
4545
4570
  if (!i) return;
4546
- let a = E(e, n);
4571
+ let a = yt(e, n);
4547
4572
  return {
4548
4573
  ...i,
4549
4574
  handler: a.type === "handler" ? a.handler : a.type === "direct" ? o : i.handler
4550
4575
  };
4551
4576
  }).filter((e) => !!e);
4552
4577
  }
4553
- function ac(e) {
4554
- return e.filter((e) => !nc.has(e.action));
4578
+ function sc(e) {
4579
+ return e.filter((e) => !ic.has(e.action));
4555
4580
  }
4556
- function oc(e) {
4581
+ function cc(e) {
4557
4582
  return {
4558
4583
  raw: {
4559
4584
  title: e,
@@ -4571,7 +4596,7 @@ function oc(e) {
4571
4596
  diagnostics: []
4572
4597
  };
4573
4598
  }
4574
- function sc(e, t, n, r = !1, i = !1) {
4599
+ function lc(e, t, n, r = !1, i = !1) {
4575
4600
  return {
4576
4601
  action: e,
4577
4602
  title: t,
@@ -4588,7 +4613,7 @@ function sc(e, t, n, r = !1, i = !1) {
4588
4613
  }
4589
4614
  };
4590
4615
  }
4591
- function cc(e, t, n) {
4616
+ function uc(e, t, n) {
4592
4617
  return {
4593
4618
  ...e,
4594
4619
  action: t,
@@ -4596,77 +4621,77 @@ function cc(e, t, n) {
4596
4621
  execute: async () => n()
4597
4622
  };
4598
4623
  }
4599
- function lc(i) {
4624
+ function dc(i) {
4600
4625
  if (i === t) return "create";
4601
4626
  if (i === e) return "attach";
4602
4627
  if (i === a) return "update";
4603
4628
  if (i === r) return "detach";
4604
4629
  if (i === n) return "delete";
4605
4630
  }
4606
- function uc(e) {
4631
+ function fc(e) {
4607
4632
  if (e?.page.formMode === "create") return "create";
4608
4633
  if (e?.page.formMode === "edit") return "update";
4609
4634
  }
4610
- function dc(e, t) {
4611
- if (bc(t.payload) && "parentValue" in t.payload) return t.payload.parentValue;
4635
+ function pc(e, t) {
4636
+ if (Sc(t.payload) && "parentValue" in t.payload) return t.payload.parentValue;
4612
4637
  let n = e.parentKey ?? t.state.schema?.schema.primaryKey ?? "id";
4613
4638
  return t.form?.values[n];
4614
4639
  }
4615
- function fc(e, t, n, r, i) {
4640
+ function mc(e, t, n, r, i) {
4616
4641
  return W({
4617
4642
  ...t,
4618
4643
  kind: "section",
4619
4644
  title: e.raw.title,
4620
- children: pc(t, n, r)
4645
+ children: hc(t, n, r)
4621
4646
  }, i);
4622
4647
  }
4623
- function pc(e, t, n) {
4624
- return e.ui.render(ce, {
4648
+ function hc(e, t, n) {
4649
+ return e.ui.render(se, {
4625
4650
  title: t,
4626
4651
  type: n,
4627
4652
  closable: !1,
4628
4653
  showIcon: !0
4629
4654
  }, void 0) ?? A("p", { class: `sparq-relation-notice is-${n}` }, t);
4630
4655
  }
4631
- async function mc(e, t, n) {
4656
+ async function gc(e, t, n) {
4632
4657
  await e.runtime.options.notify?.({
4633
4658
  type: "error",
4634
4659
  message: t,
4635
4660
  error: n
4636
4661
  });
4637
4662
  }
4638
- function hc(e) {
4639
- return e instanceof Error ? e.message : "关联资源加载失败。";
4640
- }
4641
- function gc(e) {
4642
- return bc(e) && "payload" in e ? e.payload : void 0;
4643
- }
4644
4663
  function _c(e) {
4645
- return bc(e) && e.handled === !0;
4664
+ return e instanceof Error ? e.message : "关联资源加载失败。";
4646
4665
  }
4647
4666
  function vc(e) {
4648
- return e === void 0 ? "undefined" : JSON.stringify(e);
4667
+ return Sc(e) && "payload" in e ? e.payload : void 0;
4649
4668
  }
4650
4669
  function yc(e) {
4651
- return e == null || e === "" ? "-" : Array.isArray(e) ? e.map((e) => yc(e)).join(", ") : typeof e == "object" ? JSON.stringify(e) : String(e);
4670
+ return Sc(e) && e.handled === !0;
4652
4671
  }
4653
4672
  function bc(e) {
4673
+ return e === void 0 ? "undefined" : JSON.stringify(e);
4674
+ }
4675
+ function xc(e) {
4676
+ return e == null || e === "" ? "-" : Array.isArray(e) ? e.map((e) => xc(e)).join(", ") : typeof e == "object" ? JSON.stringify(e) : String(e);
4677
+ }
4678
+ function Sc(e) {
4654
4679
  return typeof e == "object" && !!e;
4655
4680
  }
4656
4681
  //#endregion
4657
4682
  //#region src/render/field-node.ts
4658
- function xc(e, t, n, r = {
4683
+ function Cc(e, t, n, r = {
4659
4684
  disabled: !1,
4660
4685
  readonly: !1
4661
4686
  }) {
4662
- let i = wc(e, t), a = Sc(e, t), o = gt({
4687
+ let i = Ec(e, t), a = wc(e, t), o = ht({
4663
4688
  field: e.fieldSchema,
4664
4689
  dataSource: e.raw.dataSource,
4665
4690
  mode: t.state.mode,
4666
4691
  formMode: t.controller?.page.formMode,
4667
4692
  disabled: r.disabled,
4668
4693
  readonly: r.readonly
4669
- }), s = jc(e.field, t, o.options), c = Cc(e, i, {
4694
+ }), s = Nc(e.field, t, o.options), c = Tc(e, i, {
4670
4695
  ...o,
4671
4696
  options: s
4672
4697
  }, t.form?.values), l = Q(e.raw.help ?? o.help, "field", t), u = e.componentKey ? t.components?.render(e.componentKey, c, void 0, {
@@ -4707,7 +4732,7 @@ function xc(e, t, n, r = {
4707
4732
  contentNode: u
4708
4733
  }) ?? J("renderField");
4709
4734
  }
4710
- function Sc(e, t) {
4735
+ function wc(e, t) {
4711
4736
  if (!(!e.fieldSchema || !t.onFieldActivate)) return () => {
4712
4737
  t.onFieldActivate?.({
4713
4738
  field: e.fieldSchema,
@@ -4718,7 +4743,7 @@ function Sc(e, t) {
4718
4743
  });
4719
4744
  };
4720
4745
  }
4721
- function Cc(e, t, n = {
4746
+ function Tc(e, t, n = {
4722
4747
  disabled: !1,
4723
4748
  readonly: !1,
4724
4749
  options: []
@@ -4740,10 +4765,10 @@ function Cc(e, t, n = {
4740
4765
  formValues: r
4741
4766
  };
4742
4767
  }
4743
- function wc(e, t) {
4768
+ function Ec(e, t) {
4744
4769
  if (!e.field) return;
4745
- let n = jc(e.field, t, []), r = t.form?.optionLoading?.[e.field] ?? !1, i = t.form?.values[e.field], a = e.fieldSchema ? (n) => {
4746
- let r = Ac(n);
4770
+ let n = Nc(e.field, t, []), r = t.form?.optionLoading?.[e.field] ?? !1, i = t.form?.values[e.field], a = e.fieldSchema ? (n) => {
4771
+ let r = Mc(n);
4747
4772
  return t.form?.loadOptions?.({
4748
4773
  runtime: t.runtime,
4749
4774
  field: e.fieldSchema,
@@ -4757,10 +4782,10 @@ function wc(e, t) {
4757
4782
  parentValue: r.parentValue
4758
4783
  }) ?? Promise.resolve([]);
4759
4784
  } : void 0;
4760
- return Tc(e, i, n, r, a), {
4785
+ return Dc(e, i, n, r, a), {
4761
4786
  value: i,
4762
4787
  onChange(n, r) {
4763
- t.form?.setValue?.(e.field, n, e), Lo({
4788
+ t.form?.setValue?.(e.field, n, e), Ro({
4764
4789
  props: e.raw.props,
4765
4790
  form: t.form,
4766
4791
  node: e,
@@ -4782,42 +4807,42 @@ function wc(e, t) {
4782
4807
  loadOptions: a
4783
4808
  };
4784
4809
  }
4785
- function Tc(e, t, n, r, i) {
4786
- if (!i || r || !Ec(e) || Dc(t)) return;
4787
- let a = (Array.isArray(t) ? t : [t]).filter((e) => !Oc(n, e));
4810
+ function Dc(e, t, n, r, i) {
4811
+ if (!i || r || !Oc(e) || kc(t)) return;
4812
+ let a = (Array.isArray(t) ? t : [t]).filter((e) => !Ac(n, e));
4788
4813
  a.length !== 0 && i({ values: a }).catch(() => void 0);
4789
4814
  }
4790
- function Ec(e) {
4815
+ function Oc(e) {
4791
4816
  return e.raw.dataSource?.type === "reference" || !!e.fieldSchema?.reference;
4792
4817
  }
4793
- function Dc(e) {
4818
+ function kc(e) {
4794
4819
  return e == null || e === "" ? !0 : Array.isArray(e) && e.length === 0;
4795
4820
  }
4796
- function Oc(e, t) {
4797
- for (let n of e) if (kc(n.value, t) || n.children && Oc(n.children, t)) return !0;
4821
+ function Ac(e, t) {
4822
+ for (let n of e) if (jc(n.value, t) || n.children && Ac(n.children, t)) return !0;
4798
4823
  return !1;
4799
4824
  }
4800
- function kc(e, t) {
4825
+ function jc(e, t) {
4801
4826
  return JSON.stringify(e) === JSON.stringify(t);
4802
4827
  }
4803
- function Ac(e) {
4828
+ function Mc(e) {
4804
4829
  return typeof e == "string" || e === void 0 ? { keyword: e } : e;
4805
4830
  }
4806
- function jc(e, t, n) {
4831
+ function Nc(e, t, n) {
4807
4832
  return e && t.form?.options && Object.prototype.hasOwnProperty.call(t.form.options, e) ? t.form.options[e] ?? [] : n;
4808
4833
  }
4809
4834
  //#endregion
4810
4835
  //#region src/render/layout-node.ts
4811
- function Mc(e, t, n) {
4812
- return e.map((e) => Fc(e, t, n)).filter((e) => e !== void 0 && e.content !== void 0 && e.content !== null && e.content !== !1);
4836
+ function Pc(e, t, n) {
4837
+ return e.map((e) => Lc(e, t, n)).filter((e) => e !== void 0 && e.content !== void 0 && e.content !== null && e.content !== !1);
4813
4838
  }
4814
- function Nc(e) {
4839
+ function Fc(e) {
4815
4840
  return e.map((e) => e.content).filter((e) => e != null && e !== !1);
4816
4841
  }
4817
4842
  function Q(e, t, n) {
4818
- return e ? Uc(e, t, n) : void 0;
4843
+ return e ? Gc(e, t, n) : void 0;
4819
4844
  }
4820
- function Pc(e, t) {
4845
+ function Ic(e, t) {
4821
4846
  return {
4822
4847
  values: e ?? {},
4823
4848
  options: t?.options,
@@ -4825,41 +4850,41 @@ function Pc(e, t) {
4825
4850
  optionErrors: t?.optionErrors
4826
4851
  };
4827
4852
  }
4828
- function Fc(e, t, n) {
4829
- let r = _t(e, xo(t));
4853
+ function Lc(e, t, n) {
4854
+ let r = gt(e, X(t));
4830
4855
  if (!r.visible) return;
4831
- let i = e.type === "field" ? xc(e, t, n, {
4856
+ let i = e.type === "field" ? Cc(e, t, n, {
4832
4857
  disabled: r.disabled,
4833
4858
  readonly: r.readonly
4834
- }) : Ic(e, t, n);
4859
+ }) : Rc(e, t, n);
4835
4860
  return {
4836
4861
  node: e,
4837
- span: Jc(e),
4862
+ span: Xc(e),
4838
4863
  content: i
4839
4864
  };
4840
4865
  }
4841
- function Ic(e, t, n) {
4842
- let r = Mc(e.children, t, n), i = Ps(e, t, n), a = e.type === "group" ? Nc(r) : [
4843
- Hc(e, t),
4866
+ function Rc(e, t, n) {
4867
+ let r = Pc(e.children, t, n), i = Is(e, t, n), a = e.type === "group" ? Fc(r) : [
4868
+ Wc(e, t),
4844
4869
  i,
4845
- ...Nc(r)
4846
- ], o = Rc(e, t, a, r, n);
4870
+ ...Fc(r)
4871
+ ], o = Bc(e, t, a, r, n);
4847
4872
  return o === void 0 ? n?.renderLayoutNode?.({
4848
4873
  ...t,
4849
4874
  node: e,
4850
- layout: Kc(e, t),
4875
+ layout: Jc(e, t),
4851
4876
  items: r,
4852
- helpNode: Q(e.raw.help, Lc(e), t),
4877
+ helpNode: Q(e.raw.help, zc(e), t),
4853
4878
  children: a
4854
- }) ?? Vc(e, a) : o;
4879
+ }) ?? Uc(e, a) : o;
4855
4880
  }
4856
- function Lc(e) {
4881
+ function zc(e) {
4857
4882
  return e.type === "card" || e.type === "tab" ? e.type : "layout-node";
4858
4883
  }
4859
- function Rc(e, t, n, r, i) {
4884
+ function Bc(e, t, n, r, i) {
4860
4885
  if (e.type !== "section") return;
4861
- let a = zc(e, t, n, r, i);
4862
- return t.components?.render(te, {
4886
+ let a = Vc(e, t, n, r, i);
4887
+ return t.components?.render(ee, {
4863
4888
  node: e,
4864
4889
  title: e.raw.title,
4865
4890
  help: e.raw.help,
@@ -4877,8 +4902,8 @@ function Rc(e, t, n, r, i) {
4877
4902
  node: e
4878
4903
  });
4879
4904
  }
4880
- function zc(e, t, n, r, i) {
4881
- let a = Bc(n), o = Kc(e, t);
4905
+ function Vc(e, t, n, r, i) {
4906
+ let a = Hc(n), o = Jc(e, t);
4882
4907
  return !o || !i?.renderLayoutNode ? a : i.renderLayoutNode({
4883
4908
  ...t,
4884
4909
  node: {
@@ -4896,13 +4921,13 @@ function zc(e, t, n, r, i) {
4896
4921
  children: a
4897
4922
  });
4898
4923
  }
4899
- function Bc(e) {
4924
+ function Hc(e) {
4900
4925
  return Array.isArray(e) ? e.filter((e) => !(M(e) && e.props?.["data-slot"] === "node-header")) : e;
4901
4926
  }
4902
- function Vc(e, t) {
4903
- return A(Wc(e), {
4927
+ function Uc(e, t) {
4928
+ return A(Kc(e), {
4904
4929
  ...e.raw.props,
4905
- class: Gc(e),
4930
+ class: qc(e),
4906
4931
  style: e.raw.style,
4907
4932
  "data-sparq-view-node": "",
4908
4933
  "data-node-id": e.id,
@@ -4910,10 +4935,10 @@ function Vc(e, t) {
4910
4935
  "data-node-span": String(e.raw.props?.span ?? "")
4911
4936
  }, Hi(t));
4912
4937
  }
4913
- function Hc(e, t) {
4914
- if (e.type !== "tabs" && !(!e.raw.title && !e.raw.help)) return A("div", { "data-slot": "node-header" }, [e.raw.title ? A("div", { "data-slot": "node-title" }, e.raw.title) : void 0, e.raw.help ? Uc(e.raw.help, "layout-node", t) : void 0]);
4938
+ function Wc(e, t) {
4939
+ if (e.type !== "tabs" && !(!e.raw.title && !e.raw.help)) return A("div", { "data-slot": "node-header" }, [e.raw.title ? A("div", { "data-slot": "node-title" }, e.raw.title) : void 0, e.raw.help ? Gc(e.raw.help, "layout-node", t) : void 0]);
4915
4940
  }
4916
- function Uc(e, t, n) {
4941
+ function Gc(e, t, n) {
4917
4942
  return n.components?.render(f, {
4918
4943
  text: e,
4919
4944
  placement: t
@@ -4929,35 +4954,35 @@ function Uc(e, t, n) {
4929
4954
  diagnostics: n.diagnostics
4930
4955
  }) ?? e;
4931
4956
  }
4932
- function Wc(e) {
4957
+ function Kc(e) {
4933
4958
  return e.type === "section" || e.type === "card" || e.type === "tab" ? "section" : "div";
4934
4959
  }
4935
- function Gc(e) {
4960
+ function qc(e) {
4936
4961
  return [
4937
4962
  "sparq-view-node",
4938
4963
  `sparq-view-node-${e.type}`,
4939
4964
  e.raw.className
4940
4965
  ];
4941
4966
  }
4942
- function Kc(e, t) {
4943
- return qc(t.state.mode === "form" ? t.state.viewModel?.forms.get(t.state.viewName) : void 0, e);
4967
+ function Jc(e, t) {
4968
+ return Yc(t.state.mode === "form" ? t.state.viewModel?.forms.get(t.state.viewName) : void 0, e);
4944
4969
  }
4945
- function qc(e, t) {
4946
- let n = Yc(t.type) ? 24 : e?.span, r = t.gap ?? e?.gap;
4970
+ function Yc(e, t) {
4971
+ let n = Zc(t.type) ? 24 : e?.span, r = t.gap ?? e?.gap;
4947
4972
  if (!(n === void 0 && r === void 0)) return {
4948
4973
  span: n,
4949
4974
  gap: r
4950
4975
  };
4951
4976
  }
4952
- function Jc(e) {
4953
- return e.span ?? (Yc(e.type) ? 24 : void 0);
4977
+ function Xc(e) {
4978
+ return e.span ?? (Zc(e.type) ? 24 : void 0);
4954
4979
  }
4955
- function Yc(e) {
4980
+ function Zc(e) {
4956
4981
  return e === "tabs" || e === "tab" || e === "collapse" || e === "collapse-item";
4957
4982
  }
4958
4983
  //#endregion
4959
4984
  //#region src/render/page-structure.ts
4960
- function Xc(e, t, n) {
4985
+ function Qc(e, t, n) {
4961
4986
  let r = e.viewModel?.pages.get(e.viewName);
4962
4987
  if (!r) return G(e, t, n);
4963
4988
  let i = {
@@ -4970,10 +4995,10 @@ function Xc(e, t, n) {
4970
4995
  mode: "table",
4971
4996
  viewName: r.tableName ?? "default",
4972
4997
  view: r.table
4973
- }, o = Qc(r, t.controller), s = {
4998
+ }, o = el(r, t.controller), s = {
4974
4999
  ...e,
4975
5000
  mode: "form",
4976
- viewName: $c(r, t.controller),
5001
+ viewName: tl(r, t.controller),
4977
5002
  view: o
4978
5003
  }, c = {
4979
5004
  ...e,
@@ -4985,8 +5010,8 @@ function Xc(e, t, n) {
4985
5010
  ...t,
4986
5011
  kind: "page",
4987
5012
  children: [
4988
- r.search ? Ii("search", vs(i, el(t, i, r), n)) : void 0,
4989
- Zc(e, r) ? Ii("tree", n?.renderResourceTree?.({
5013
+ r.search ? Ii("search", bs(i, nl(t, i, r), n)) : void 0,
5014
+ $c(e, r) ? Ii("tree", n?.renderResourceTree?.({
4990
5015
  ...t,
4991
5016
  state: e,
4992
5017
  treeState: t.controller?.treeState,
@@ -5005,9 +5030,9 @@ function Xc(e, t, n) {
5005
5030
  }) ?? Promise.resolve([]);
5006
5031
  }
5007
5032
  })) : void 0,
5008
- r.table ? Ii("table", _s(a, el(t, a, r), n)) : void 0,
5009
- s.view ? Ii("form", gs(s, el(t, s, r), n, { embeddedInPage: !0 })) : void 0,
5010
- r.detail ? Ii("detail", ys(c, {
5033
+ r.table ? Ii("table", ys(a, nl(t, a, r), n)) : void 0,
5034
+ s.view ? Ii("form", vs(s, nl(t, s, r), n, { embeddedInPage: !0 })) : void 0,
5035
+ r.detail ? Ii("detail", xs(c, {
5011
5036
  ...t,
5012
5037
  state: c,
5013
5038
  tableReloadView: r.tableName,
@@ -5015,27 +5040,27 @@ function Xc(e, t, n) {
5015
5040
  pageCreateFormName: r.createFormName,
5016
5041
  pageUpdateForm: r.updateForm ?? r.createForm,
5017
5042
  pageUpdateFormName: r.updateFormName ?? r.createFormName,
5018
- form: Pc(t.controller?.page.detailRecord, t.form)
5043
+ form: Ic(t.controller?.page.detailRecord, t.form)
5019
5044
  }, n, { embeddedInPage: !0 })) : void 0
5020
5045
  ]
5021
5046
  }, n);
5022
5047
  }
5023
- function Zc(e, t) {
5048
+ function $c(e, t) {
5024
5049
  if (t.table?.mode === "tree") return !1;
5025
5050
  let n = e.viewModel?.schema.tree ?? e.schema?.schema.tree;
5026
5051
  return n ? n.enabled !== !1 : !1;
5027
5052
  }
5028
- function Qc(e, t) {
5053
+ function el(e, t) {
5029
5054
  return t?.page.formMode === "edit" ? e.updateForm ?? e.createForm : e.createForm;
5030
5055
  }
5031
- function $c(e, t) {
5056
+ function tl(e, t) {
5032
5057
  return t?.page.formMode === "edit" ? e.updateFormName ?? e.createFormName ?? "default" : e.createFormName ?? "default";
5033
5058
  }
5034
- function el(e, t, n) {
5059
+ function nl(e, t, n) {
5035
5060
  return {
5036
5061
  ...e,
5037
5062
  state: t,
5038
- form: yo(t, e.controller, e.form),
5063
+ form: xo(t, e.controller, e.form),
5039
5064
  tableReloadView: n?.tableName ?? e.tableReloadView,
5040
5065
  tableReloadMode: n?.table?.mode ?? e.tableReloadMode,
5041
5066
  tableReloadTree: n?.table?.tree ?? e.tableReloadTree,
@@ -5044,7 +5069,7 @@ function el(e, t, n) {
5044
5069
  pageUpdateForm: n?.updateForm ?? n?.createForm ?? e.pageUpdateForm,
5045
5070
  pageUpdateFormName: n?.updateFormName ?? n?.createFormName ?? e.pageUpdateFormName,
5046
5071
  resolveTableReloadView() {
5047
- return n?.tableName ?? e.tableReloadView ?? To({ state: t });
5072
+ return n?.tableName ?? e.tableReloadView ?? Eo({ state: t });
5048
5073
  },
5049
5074
  resolveTableReloadMode() {
5050
5075
  return n?.table?.mode ?? e.tableReloadMode;
@@ -5056,45 +5081,45 @@ function el(e, t, n) {
5056
5081
  }
5057
5082
  //#endregion
5058
5083
  //#region src/render/structure.ts
5059
- function tl(e, t, n) {
5084
+ function rl(e, t, n) {
5060
5085
  switch (e.mode) {
5061
- case "page": return Xc(e, t, n);
5062
- case "form": return gs(e, t, n, { hideFooter: e.hideFormFooter });
5063
- case "table": return _s(e, t, n);
5064
- case "search": return vs(e, t, n);
5065
- case "detail": return ys(e, t, n);
5086
+ case "page": return Qc(e, t, n);
5087
+ case "form": return vs(e, t, n, { hideFooter: e.hideFormFooter });
5088
+ case "table": return ys(e, t, n);
5089
+ case "search": return bs(e, t, n);
5090
+ case "detail": return xs(e, t, n);
5066
5091
  }
5067
5092
  }
5068
5093
  //#endregion
5069
5094
  //#region src/render/container-structure.ts
5070
- function nl(e, t) {
5071
- let n = cl(e);
5095
+ function il(e, t) {
5096
+ let n = ul(e);
5072
5097
  return [
5073
- al(n.toolbar, t),
5098
+ sl(n.toolbar, t),
5074
5099
  A("div", {
5075
5100
  class: "sparq-table-body",
5076
5101
  "data-slot": "table-body"
5077
- }, hl(n.table)),
5102
+ }, _l(n.table)),
5078
5103
  n.pagination ? A("div", {
5079
5104
  class: "sparq-table-footer",
5080
5105
  "data-slot": "table-footer"
5081
- }, [ml(n.pagination)]) : void 0
5106
+ }, [gl(n.pagination)]) : void 0
5082
5107
  ];
5083
5108
  }
5084
- function rl(e) {
5109
+ function al(e) {
5085
5110
  if (!Array.isArray(e)) return;
5086
5111
  let t = e.find((e) => M(e) && e.props?.["data-slot"] === "operation");
5087
5112
  if (t) return A("div", {
5088
5113
  class: "sparq-search-operation",
5089
5114
  "data-slot": "search-operation"
5090
- }, hl(t));
5115
+ }, _l(t));
5091
5116
  }
5092
- function il(e) {
5117
+ function ol(e) {
5093
5118
  return Array.isArray(e) ? e.find((e) => M(e) && e.props?.["data-slot"] === "items") ?? e : e;
5094
5119
  }
5095
- function al(e, t) {
5120
+ function sl(e, t) {
5096
5121
  if (!e || !M(e)) return;
5097
- let n = ll(e.children);
5122
+ let n = dl(e.children);
5098
5123
  if (!(!n.left && !n.filters && !n.batch && !n.right)) return A("div", {
5099
5124
  class: "sparq-table-toolbar",
5100
5125
  "data-slot": "table-toolbar"
@@ -5102,35 +5127,35 @@ function al(e, t) {
5102
5127
  class: "sparq-table-toolbar-main",
5103
5128
  "data-slot": "table-toolbar-main"
5104
5129
  }, [
5105
- ol(n.left, "toolbar-left", t),
5106
- sl(n.filters, "toolbar-filters"),
5107
- ol(n.batch, "toolbar-batch", t)
5108
- ]), ol(n.right, "toolbar-right", t)]);
5130
+ cl(n.left, "toolbar-left", t),
5131
+ ll(n.filters, "toolbar-filters"),
5132
+ cl(n.batch, "toolbar-batch", t)
5133
+ ]), cl(n.right, "toolbar-right", t)]);
5109
5134
  }
5110
- function ol(e, t, n) {
5135
+ function cl(e, t, n) {
5111
5136
  if (!e) return;
5112
- let r = pl(e);
5137
+ let r = hl(e);
5113
5138
  if (r.length !== 0) return A("div", {
5114
5139
  class: ["sparq-table-toolbar-section", `sparq-table-${t}`],
5115
5140
  "data-slot": t
5116
- }, r.length === 1 ? r : hl(n.render(w, { "data-sparq-button-group": t }, { default: () => r })));
5141
+ }, r.length === 1 ? r : _l(n.render(T, { "data-sparq-button-group": t }, { default: () => r })));
5117
5142
  }
5118
- function sl(e, t) {
5143
+ function ll(e, t) {
5119
5144
  if (e) return A("div", {
5120
5145
  class: ["sparq-table-toolbar-section", `sparq-table-${t}`],
5121
5146
  "data-slot": t
5122
- }, hl(fl(e)));
5147
+ }, _l(ml(e)));
5123
5148
  }
5124
- function cl(e) {
5149
+ function ul(e) {
5125
5150
  if (!Array.isArray(e)) return { table: e };
5126
5151
  let t = e.filter((e) => e != null && e !== !1);
5127
5152
  return {
5128
5153
  toolbar: t.find((e) => M(e) && e.props?.["data-slot"] === "toolbar"),
5129
- table: t.filter((e) => ul(e)),
5130
- pagination: t.find((e) => dl(e))
5154
+ table: t.filter((e) => fl(e)),
5155
+ pagination: t.find((e) => pl(e))
5131
5156
  };
5132
5157
  }
5133
- function ll(e) {
5158
+ function dl(e) {
5134
5159
  let t = Array.isArray(e) ? e : [e];
5135
5160
  return {
5136
5161
  left: t.find((e) => M(e) && e.props?.["data-slot"] === "toolbar-left"),
@@ -5139,42 +5164,42 @@ function ll(e) {
5139
5164
  filters: t.find((e) => M(e) && e.props?.["data-slot"] === "toolbar-filters")
5140
5165
  };
5141
5166
  }
5142
- function ul(e) {
5167
+ function fl(e) {
5143
5168
  return !(M(e) && (e.props?.["data-slot"] === "toolbar" || e.props?.["data-slot"] === "pagination" || e.props?.["data-sparq-table-pagination"] !== void 0));
5144
5169
  }
5145
- function dl(e) {
5170
+ function pl(e) {
5146
5171
  return M(e) && (e.props?.["data-slot"] === "pagination" || e.props?.["data-sparq-table-pagination"] !== void 0);
5147
5172
  }
5148
- function fl(e) {
5173
+ function ml(e) {
5149
5174
  return M(e) ? e.children : e;
5150
5175
  }
5151
- function pl(e) {
5152
- let t = fl(e);
5176
+ function hl(e) {
5177
+ let t = ml(e);
5153
5178
  return (Array.isArray(t) ? t : [t]).filter((e) => e != null && e !== !1);
5154
5179
  }
5155
- function ml(e) {
5180
+ function gl(e) {
5156
5181
  return M(e) && e.props?.["data-slot"] === "pagination" ? e.children : e;
5157
5182
  }
5158
- function hl(e) {
5183
+ function _l(e) {
5159
5184
  if (!(e == null || typeof e == "boolean")) return e;
5160
5185
  }
5161
5186
  //#endregion
5162
5187
  //#region src/render/index.ts
5163
- var gl = Ui();
5164
- function _l(e, t, n, r, i, a, o, s, c, l, u, d, f) {
5165
- let p = vo(e, t, gl, r, Ua(Ha(), i), c, l, u, a, o, s, d, f);
5166
- return e.status !== "ready" || !e.view || !e.viewModel ? G(e, p, n) : tl(e, p, n);
5188
+ var vl = Ui();
5189
+ function yl(e, t, n, r, i, a, o, s, c, l, u, d, f) {
5190
+ let p = bo(e, t, vl, r, Ua(Ha(), i), c, l, u, a, o, s, d, f);
5191
+ return e.status !== "ready" || !e.view || !e.viewModel ? G(e, p, n) : rl(e, p, n);
5167
5192
  }
5168
5193
  //#endregion
5169
5194
  //#region src/presentation/host.ts
5170
- function vl(e, t) {
5195
+ function bl(e, t) {
5171
5196
  return e ? async (n) => {
5172
5197
  let r = await t?.(n);
5173
- return r === void 0 ? yl(n, e) : r;
5198
+ return r === void 0 ? xl(n, e) : r;
5174
5199
  } : t;
5175
5200
  }
5176
- async function yl(e, t) {
5177
- let n = bl(e);
5201
+ async function xl(e, t) {
5202
+ let n = Sl(e);
5178
5203
  if (!n) return;
5179
5204
  let r = await t.open(n);
5180
5205
  if (r.opened) return r.changed && await e.reloadTable?.(), {
@@ -5182,8 +5207,8 @@ async function yl(e, t) {
5182
5207
  result: r
5183
5208
  };
5184
5209
  }
5185
- function bl(e) {
5186
- let n = xl(e.action.action), r = Sl(e.action.presentation?.mount), i = Cl(e.action.presentation?.type);
5210
+ function Sl(e) {
5211
+ let n = Cl(e.action.action), r = wl(e.action.presentation?.mount), i = Tl(e.action.presentation?.type);
5187
5212
  if (!n || !r || !i || !e.resource) return;
5188
5213
  let a = e.action.presentation?.props ?? {}, o = n === t && e.form && Object.keys(e.form.values).length > 0 ? { ...e.form.values } : void 0;
5189
5214
  return {
@@ -5195,26 +5220,26 @@ function bl(e) {
5195
5220
  title: e.action.title,
5196
5221
  id: e.id,
5197
5222
  ...o ? { initialValues: o } : {},
5198
- size: wl(i, a),
5223
+ size: El(i, a),
5199
5224
  props: a
5200
5225
  };
5201
5226
  }
5202
- function xl(e) {
5227
+ function Cl(e) {
5203
5228
  if (e === t || e === a) return e;
5204
5229
  }
5205
- function Sl(e) {
5230
+ function wl(e) {
5206
5231
  return e === "parent" || e === "root" ? e : void 0;
5207
5232
  }
5208
- function Cl(e) {
5233
+ function Tl(e) {
5209
5234
  return e === "dialog" || e === "drawer" ? e : void 0;
5210
5235
  }
5211
- function wl(e, t) {
5236
+ function El(e, t) {
5212
5237
  let n = e === "dialog" ? t.width : t.size;
5213
5238
  return typeof n == "string" ? n : void 0;
5214
5239
  }
5215
5240
  //#endregion
5216
5241
  //#region src/components/SparqView.ts
5217
- var Tl = k({
5242
+ var Dl = k({
5218
5243
  name: "SparqView",
5219
5244
  inheritAttrs: !1,
5220
5245
  props: {
@@ -5245,7 +5270,7 @@ var Tl = k({
5245
5270
  "field-activate": (e) => !0
5246
5271
  },
5247
5272
  setup(e, { attrs: t, emit: n, expose: r }) {
5248
- let i = j(jt, void 0), a = j(At, void 0), o = j(Mt, void 0), s = j(Nt, void 0), c = j(I, void 0), l = j(Pt, void 0), u = j(Ft, void 0), d = j(It, void 0), f = j(L, void 0), p = nt(), m = P(Ol(e, (e) => n("update:modelValue", e))), h = () => e.controller ?? m.value, g = P(Mo(Dl(e), a ?? i?.runtime ?? p)), _ = 0, v = N(0), y = "", b, x, S, ee = 0;
5273
+ let i = j(jt, void 0), a = j(At, void 0), o = j(Mt, void 0), s = j(Nt, void 0), c = j(I, void 0), l = j(Pt, void 0), u = j(Ft, void 0), d = j(It, void 0), f = j(L, void 0), p = tt(), m = P(Al(e, (e) => n("update:modelValue", e))), h = () => e.controller ?? m.value, g = P(No(kl(e), a ?? i?.runtime ?? p)), _ = 0, v = N(0), y = "", b, x, S, C = 0;
5249
5274
  return r({
5250
5275
  getValues() {
5251
5276
  return h().getValues();
@@ -5265,10 +5290,10 @@ var Tl = k({
5265
5290
  }), F(() => e.modelValue, (t) => {
5266
5291
  t && e.controller === void 0 && m.value.setValues(t);
5267
5292
  }, { deep: !0 }), F(() => ({ ...h().form.values }), async (t, n) => {
5268
- let r = ++ee, o = g.value, s = (e.runtime ?? a ?? i?.runtime ?? p).options.hooks?.onFormFieldChange, c = o.schema?.schema, l = o.resource;
5293
+ let r = ++C, o = g.value, s = (e.runtime ?? a ?? i?.runtime ?? p).options.hooks?.onFormFieldChange, c = o.schema?.schema, l = o.resource;
5269
5294
  if (!s || !c || !l) return;
5270
5295
  let u = t;
5271
- for (let e of El(t, n)) {
5296
+ for (let e of Ol(t, n)) {
5272
5297
  let t = await s({
5273
5298
  schema: c,
5274
5299
  resource: o.schema?.resource,
@@ -5282,21 +5307,21 @@ var Tl = k({
5282
5307
  value: u[e],
5283
5308
  previousValue: n[e]
5284
5309
  });
5285
- if (r !== ee) return;
5310
+ if (r !== C) return;
5286
5311
  t && (u = {
5287
5312
  ...u,
5288
5313
  ...t
5289
5314
  });
5290
5315
  }
5291
- for (let e of El(u, t)) h().setValue(e, u[e]);
5292
- }), F(() => [Dl(e), v.value], async ([t]) => {
5316
+ for (let e of Ol(u, t)) h().setValue(e, u[e]);
5317
+ }), F(() => [kl(e), v.value], async ([t]) => {
5293
5318
  let r = ++_, o = t.runtime ?? a ?? i?.runtime ?? p;
5294
- !t.schema && t.resource && (g.value = Po(t));
5295
- let s = await No(t, o);
5296
- if (r === _ && (g.value = s, e.controller === void 0 ? m.value = Ol({
5319
+ !t.schema && t.resource && (g.value = Fo(t));
5320
+ let s = await Po(t, o);
5321
+ if (r === _ && (g.value = s, e.controller === void 0 ? m.value = Al({
5297
5322
  ...e,
5298
5323
  schema: s.schema ?? t.schema
5299
- }, (e) => n("update:modelValue", e)) : h().reset(), kl(h(), s, o), s.autoLoadTable && s.tableReloadViewName)) {
5324
+ }, (e) => n("update:modelValue", e)) : h().reset(), jl(h(), s, o), s.autoLoadTable && s.tableReloadViewName)) {
5300
5325
  let e = s.tableReloadViewName, n = s.tableReloadMode, r = s.tableReloadTree, i = `${s.resource ?? ""}:${s.mode}:${e}:${n ?? ""}:${JSON.stringify(r ?? {})}:${JSON.stringify(s.filters ?? [])}`;
5301
5326
  (y !== i || b !== t.schema || x !== t.source || S !== t.payload) && (y = i, b = t.schema, x = t.source, S = t.payload, h().reloadTable({
5302
5327
  runtime: o,
@@ -5312,7 +5337,7 @@ var Tl = k({
5312
5337
  immediate: !0,
5313
5338
  deep: !0
5314
5339
  }), () => {
5315
- let r = _l(g.value, e.runtime ?? a ?? i?.runtime ?? p, e.uiAdapter ?? s ?? i?.uiAdapter, e.uiKit ?? c ?? i?.uiKit, e.components ?? l ?? i?.components, h().form, vl(o ?? i?.presentationHost, e.onAction), h(), e.icons ?? u ?? i?.icons, e.richTextEditors ?? d ?? i?.richTextEditors, e.assetService ?? f ?? i?.assetService, () => {
5340
+ let r = yl(g.value, e.runtime ?? a ?? i?.runtime ?? p, e.uiAdapter ?? s ?? i?.uiAdapter, e.uiKit ?? c ?? i?.uiKit, e.components ?? l ?? i?.components, h().form, bl(o ?? i?.presentationHost, e.onAction), h(), e.icons ?? u ?? i?.icons, e.richTextEditors ?? d ?? i?.richTextEditors, e.assetService ?? f ?? i?.assetService, () => {
5316
5341
  v.value += 1;
5317
5342
  }, (e) => n("field-activate", e));
5318
5343
  return A("section", {
@@ -5329,10 +5354,10 @@ var Tl = k({
5329
5354
  };
5330
5355
  }
5331
5356
  });
5332
- function El(e, t) {
5357
+ function Ol(e, t) {
5333
5358
  return [...new Set([...Object.keys(e), ...Object.keys(t)])].filter((n) => !Object.is(e[n], t[n]));
5334
5359
  }
5335
- function Dl(e) {
5360
+ function kl(e) {
5336
5361
  return {
5337
5362
  mode: e.mode,
5338
5363
  applyDefaults: e.applyDefaults,
@@ -5346,15 +5371,15 @@ function Dl(e) {
5346
5371
  hideFormFooter: e.hideFormFooter
5347
5372
  };
5348
5373
  }
5349
- function Ol(e, t) {
5350
- return Do({
5374
+ function Al(e, t) {
5375
+ return Oo({
5351
5376
  initialValues: e.modelValue,
5352
5377
  applyDefaults: e.applyDefaults,
5353
5378
  schema: e.schema?.schema,
5354
5379
  onValuesChange: t
5355
5380
  });
5356
5381
  }
5357
- async function kl(e, t, n) {
5382
+ async function jl(e, t, n) {
5358
5383
  let r = e.form.loadOptions;
5359
5384
  if (!r) return;
5360
5385
  let i = (t.schema?.schema.fields ?? []).filter((e) => e.options?.mode === "dictionary");
@@ -5369,14 +5394,14 @@ async function kl(e, t, n) {
5369
5394
  }
5370
5395
  //#endregion
5371
5396
  //#region src/asset/picker/AssetPickerParts.tsx
5372
- function Al(e, t) {
5397
+ function Ml(e, t) {
5373
5398
  return /* @__PURE__ */ A("header", { class: "sparq-asset-picker__header" }, /* @__PURE__ */ A("div", { class: "sparq-asset-picker__title-group" }, /* @__PURE__ */ A("div", { class: "sparq-asset-picker__title" }, "资源选择器"), /* @__PURE__ */ A("div", { class: "sparq-asset-picker__subtitle" }, "选择、上传或添加远程资源。")), $(t, "关闭", {
5374
5399
  class: "sparq-asset-picker__button",
5375
5400
  icon: "close",
5376
5401
  onClick: e
5377
5402
  }));
5378
5403
  }
5379
- function jl(e) {
5404
+ function Nl(e) {
5380
5405
  return /* @__PURE__ */ A("div", { class: "sparq-asset-picker__toolbar" }, /* @__PURE__ */ A("div", { class: "sparq-asset-picker__tabs" }, [
5381
5406
  {
5382
5407
  name: "server",
@@ -5405,7 +5430,7 @@ function jl(e) {
5405
5430
  onClick: e.confirm
5406
5431
  })));
5407
5432
  }
5408
- function Ml(e, t, n, r) {
5433
+ function Pl(e, t, n, r) {
5409
5434
  return /* @__PURE__ */ A("aside", { class: "sparq-asset-picker__selected" }, /* @__PURE__ */ A("div", { class: "sparq-asset-picker__selected-title" }, "已选资源"), e.length === 0 ? /* @__PURE__ */ A("div", { class: "sparq-asset-picker__selected-empty" }, "暂未选择资源") : /* @__PURE__ */ A("div", { class: "sparq-asset-picker__selected-list" }, e.map((e) => /* @__PURE__ */ A("div", {
5410
5435
  key: e.id ?? e.url,
5411
5436
  class: "sparq-asset-picker__selected-item"
@@ -5417,7 +5442,7 @@ function Ml(e, t, n, r) {
5417
5442
  onClick: () => t(e)
5418
5443
  })))));
5419
5444
  }
5420
- function Nl(e, t, n) {
5445
+ function Fl(e, t, n) {
5421
5446
  let r = t.selected.some((n) => t.isSameAsset(n, e)), i = !r && !t.canSelectAsset(e, t.pickerType), a = t.resolveLimit(t.request), o = !r && !i && a > 0 && t.selected.length >= a, s = H(e);
5422
5447
  return /* @__PURE__ */ A("button", {
5423
5448
  type: "button",
@@ -5441,7 +5466,7 @@ function Nl(e, t, n) {
5441
5466
  }
5442
5467
  }, /* @__PURE__ */ A("span", { class: "sparq-asset-picker__checkmark" }, "✓"), Qr(e, "card", t.openPreview, t.assetPreviews), /* @__PURE__ */ A("span", { class: "sparq-asset-picker__asset-title" }, s), /* @__PURE__ */ A("span", { class: "sparq-asset-picker__asset-meta" }, $r(e)));
5443
5468
  }
5444
- function Pl(e) {
5469
+ function Il(e) {
5445
5470
  return /* @__PURE__ */ A("div", { class: "sparq-asset-picker__table-wrap" }, /* @__PURE__ */ A("table", { class: "sparq-asset-picker__table" }, /* @__PURE__ */ A("thead", null, /* @__PURE__ */ A("tr", null, /* @__PURE__ */ A("th", null, "预览"), /* @__PURE__ */ A("th", null, "标题"), /* @__PURE__ */ A("th", null, "大小"), /* @__PURE__ */ A("th", null, "类型"), /* @__PURE__ */ A("th", null, "操作"))), /* @__PURE__ */ A("tbody", null, e.payload.results.map((t) => {
5446
5471
  let n = e.selected.some((n) => e.isSameAsset(n, t)), r = !n && !e.canSelectAsset(t, e.pickerType);
5447
5472
  return /* @__PURE__ */ A("tr", {
@@ -5458,7 +5483,7 @@ function Pl(e) {
5458
5483
  })));
5459
5484
  }))));
5460
5485
  }
5461
- function Fl(e) {
5486
+ function Ll(e) {
5462
5487
  return /* @__PURE__ */ A("footer", { class: "sparq-asset-picker__pagination" }, /* @__PURE__ */ A("span", null, `共 ${e.payload.total} 条,第 ${e.search.page} / ${e.totalPages} 页`), /* @__PURE__ */ A("div", { class: "sparq-asset-picker__pagination-actions" }, $(e.ui, "上一页", {
5463
5488
  class: "sparq-asset-picker__button",
5464
5489
  size: "small",
@@ -5476,15 +5501,15 @@ function Fl(e) {
5476
5501
  })));
5477
5502
  }
5478
5503
  function $(e, t, n) {
5479
- let r = e.render(C, {
5504
+ let r = e.render(w, {
5480
5505
  nativeType: "button",
5481
5506
  ...n
5482
5507
  }, { default: () => t });
5483
5508
  if (r) return r;
5484
5509
  throw Error("Sparq UI button is required to render asset picker.");
5485
5510
  }
5486
- function Il(e, t, n) {
5487
- let r = e.render(We, {
5511
+ function Rl(e, t, n) {
5512
+ let r = e.render(Ue, {
5488
5513
  ...n,
5489
5514
  value: t
5490
5515
  });
@@ -5493,7 +5518,7 @@ function Il(e, t, n) {
5493
5518
  }
5494
5519
  //#endregion
5495
5520
  //#region src/asset/picker/AssetPickerServerPanel.tsx
5496
- function Ll(e) {
5521
+ function zl(e) {
5497
5522
  return e.request.config.list ? /* @__PURE__ */ A("section", { class: "sparq-asset-picker__server" }, /* @__PURE__ */ A("aside", {
5498
5523
  class: "sparq-asset-picker__groups",
5499
5524
  "aria-label": "资源分组"
@@ -5507,7 +5532,7 @@ function Ll(e) {
5507
5532
  onClick: () => {
5508
5533
  e.search.group = t.value;
5509
5534
  }
5510
- }, t.label))), /* @__PURE__ */ A("section", { class: "sparq-asset-picker__panel" }, /* @__PURE__ */ A("div", { class: "sparq-asset-picker__filters" }, Il(e.ui, e.search.title, {
5535
+ }, t.label))), /* @__PURE__ */ A("section", { class: "sparq-asset-picker__panel" }, /* @__PURE__ */ A("div", { class: "sparq-asset-picker__filters" }, Rl(e.ui, e.search.title, {
5511
5536
  class: "sparq-asset-picker__input",
5512
5537
  placeholder: "输入标题或资源名称",
5513
5538
  onChange(t) {
@@ -5516,41 +5541,41 @@ function Ll(e) {
5516
5541
  onKeyup(t) {
5517
5542
  t.key === "Enter" && e.submitSearch();
5518
5543
  }
5519
- }), Rl(e.ui, e.typeOptions, e.search.type, e.pickerType === "image", (t) => {
5544
+ }), Bl(e.ui, e.typeOptions, e.search.type, e.pickerType === "image", (t) => {
5520
5545
  e.search.type = t;
5521
5546
  }), $(e.ui, "搜索", {
5522
5547
  class: "sparq-asset-picker__button is-primary",
5523
5548
  type: "primary",
5524
5549
  icon: "search",
5525
5550
  onClick: e.submitSearch
5526
- }), /* @__PURE__ */ A("div", { class: "sparq-asset-picker__segment" }, Bl("卡片", e.view === "grid", () => e.setView("grid")), Bl("列表", e.view === "list", () => e.setView("list")))), e.loading ? /* @__PURE__ */ A("div", { class: "sparq-asset-picker__empty" }, "资源加载中...") : e.payload.results.length === 0 ? /* @__PURE__ */ A("div", { class: "sparq-asset-picker__empty" }, "当前筛选下暂无资源") : e.view === "grid" ? /* @__PURE__ */ A("div", {
5551
+ }), /* @__PURE__ */ A("div", { class: "sparq-asset-picker__segment" }, Hl("卡片", e.view === "grid", () => e.setView("grid")), Hl("列表", e.view === "list", () => e.setView("list")))), e.loading ? /* @__PURE__ */ A("div", { class: "sparq-asset-picker__empty" }, "资源加载中...") : e.payload.results.length === 0 ? /* @__PURE__ */ A("div", { class: "sparq-asset-picker__empty" }, "当前筛选下暂无资源") : e.view === "grid" ? /* @__PURE__ */ A("div", {
5527
5552
  class: "sparq-asset-picker__grid",
5528
5553
  role: "listbox",
5529
5554
  "aria-label": "资源列表",
5530
5555
  onKeydown: e.handleAssetGridKeydown
5531
- }, e.payload.results.map((t, n) => Nl(t, e, n))) : Pl(e), Fl(e))) : /* @__PURE__ */ A("div", { class: "sparq-asset-picker__empty" }, "未配置服务端资源列表。");
5556
+ }, e.payload.results.map((t, n) => Fl(t, e, n))) : Il(e), Ll(e))) : /* @__PURE__ */ A("div", { class: "sparq-asset-picker__empty" }, "未配置服务端资源列表。");
5532
5557
  }
5533
- function Rl(e, t, n, r, i) {
5534
- let a = e.render(Ie, {
5558
+ function Bl(e, t, n, r, i) {
5559
+ let a = e.render(Fe, {
5535
5560
  class: "sparq-asset-picker__select",
5536
5561
  value: n,
5537
5562
  disabled: r,
5538
5563
  onChange(e) {
5539
5564
  i(String(e ?? ""));
5540
5565
  }
5541
- }, { default: () => t.map((t) => zl(e, t)) });
5566
+ }, { default: () => t.map((t) => Vl(e, t)) });
5542
5567
  if (a) return a;
5543
5568
  throw Error("Sparq UI select is required to render asset picker.");
5544
5569
  }
5545
- function zl(e, t) {
5546
- let n = e.render(Oe, {
5570
+ function Vl(e, t) {
5571
+ let n = e.render(De, {
5547
5572
  label: t.label,
5548
5573
  value: t.value
5549
5574
  }, { default: () => t.label });
5550
5575
  if (n) return n;
5551
5576
  throw Error("Sparq UI option is required to render asset picker.");
5552
5577
  }
5553
- function Bl(e, t, n) {
5578
+ function Hl(e, t, n) {
5554
5579
  return /* @__PURE__ */ A("button", {
5555
5580
  type: "button",
5556
5581
  class: ["sparq-asset-picker__segment-button", t ? "is-active" : void 0],
@@ -5560,12 +5585,12 @@ function Bl(e, t, n) {
5560
5585
  }
5561
5586
  //#endregion
5562
5587
  //#region src/asset/picker/AssetPickerRoot.ts
5563
- var Vl = "sparq.asset-picker.view", Hl = {
5588
+ var Ul = "sparq.asset-picker.view", Wl = {
5564
5589
  results: [],
5565
5590
  total: 0,
5566
5591
  groups: [],
5567
5592
  types: []
5568
- }, Ul = k({
5593
+ }, Gl = k({
5569
5594
  name: "SparqAssetPickerRoot",
5570
5595
  props: {
5571
5596
  request: {
@@ -5584,7 +5609,7 @@ var Vl = "sparq.asset-picker.view", Hl = {
5584
5609
  setup(e) {
5585
5610
  let t = e.uiKit ? void 0 : j(I, void 0), n = e.uiKit ?? t;
5586
5611
  if (!n) throw Error("Sparq UI kit is required to render asset picker.");
5587
- let r = Br(), i = N("server"), a = N($l(e.viewPreference)), o = N([]), s = N(Hl), c = N(!1), l = N(), u = N(""), d = 0, f = Wr(), p = N(""), m = N(!1), h = N(!1), g = Dt({
5612
+ let r = Br(), i = N("server"), a = N(tu(e.viewPreference)), o = N([]), s = N(Wl), c = N(!1), l = N(), u = N(""), d = 0, f = Wr(), p = N(""), m = N(!1), h = N(!1), g = Dt({
5588
5613
  title: "",
5589
5614
  type: "",
5590
5615
  page: 1,
@@ -5596,33 +5621,33 @@ var Vl = "sparq.asset-picker.view", Hl = {
5596
5621
  return r ? r.config.upload(e, t, n) : Promise.reject(/* @__PURE__ */ Error("资源选择器已经关闭。"));
5597
5622
  },
5598
5623
  onSuccess(e) {
5599
- ge(e);
5624
+ he(e);
5600
5625
  },
5601
5626
  onError(e, t) {
5602
- w(`${t.file.name} 上传失败。`);
5627
+ T(`${t.file.name} 上传失败。`);
5603
5628
  }
5604
- }), y = v.tasks, b = O(() => _.value !== void 0), x = O(() => _.value?.options.type), S = O(() => Yl(_.value)), ee = O(() => Math.max(1, Math.ceil((s.value.total || 0) / g.limit))), te = O(() => o.value.length > 0), ne = O(() => S.value === 0 || o.value.length < S.value), re = O(() => [{
5629
+ }), y = v.tasks, b = O(() => _.value !== void 0), x = O(() => _.value?.options.type), S = O(() => Zl(_.value)), C = O(() => Math.max(1, Math.ceil((s.value.total || 0) / g.limit))), ee = O(() => o.value.length > 0), te = O(() => S.value === 0 || o.value.length < S.value), ne = O(() => [{
5605
5630
  label: "全部类型",
5606
5631
  value: ""
5607
- }, ...s.value.types ?? []]), ie = O(() => s.value.groups ?? []);
5632
+ }, ...s.value.types ?? []]), re = O(() => s.value.groups ?? []);
5608
5633
  F(_, (e) => {
5609
- e && (i.value = e.config.list ? "server" : "upload", o.value = [], v.reset(), p.value = "", m.value = !1, l.value = void 0, g.title = "", g.type = e.options.type === "image" ? "image" : "", g.page = 1, g.group = "", se());
5634
+ e && (i.value = e.config.list ? "server" : "upload", o.value = [], v.reset(), p.value = "", m.value = !1, l.value = void 0, g.title = "", g.type = e.options.type === "image" ? "image" : "", g.page = 1, g.group = "", oe());
5610
5635
  }, { immediate: !0 }), F(() => [
5611
5636
  g.page,
5612
5637
  g.limit,
5613
5638
  g.group
5614
5639
  ], () => {
5615
- se();
5640
+ oe();
5616
5641
  });
5617
- let ae = () => {
5642
+ let ie = () => {
5618
5643
  d += 1, c.value = !1, v.reset(), _.value?.resolve([]), e.request.value = void 0;
5619
- }, oe = () => {
5644
+ }, ae = () => {
5620
5645
  v.reset(), _.value?.resolve(o.value.map((e) => ({ ...e }))), e.request.value = void 0;
5621
5646
  };
5622
- async function se() {
5647
+ async function oe() {
5623
5648
  let e = _.value, t = ++d;
5624
5649
  if (!e?.config.list) {
5625
- s.value = Hl, l.value = void 0;
5650
+ s.value = Wl, l.value = void 0;
5626
5651
  return;
5627
5652
  }
5628
5653
  c.value = !0, l.value = void 0;
@@ -5636,47 +5661,47 @@ var Vl = "sparq.asset-picker.view", Hl = {
5636
5661
  field: e.options.field,
5637
5662
  props: e.options.props
5638
5663
  });
5639
- t === d && e === _.value && (s.value = ql(n, x.value));
5664
+ t === d && e === _.value && (s.value = Yl(n, x.value));
5640
5665
  } catch (n) {
5641
5666
  t === d && e === _.value && (l.value = n);
5642
5667
  } finally {
5643
5668
  t === d && (c.value = !1);
5644
5669
  }
5645
5670
  }
5646
- let C = () => {
5647
- g.page = 1, se();
5648
- }, w = (e) => {
5671
+ let w = () => {
5672
+ g.page = 1, oe();
5673
+ }, T = (e) => {
5649
5674
  u.value = u.value && u.value !== e ? `${u.value} ${e}` : e;
5650
- }, le = (t) => {
5651
- a.value = t, eu(t, e.viewPreference);
5652
- }, ue = (e) => {
5653
- if (!Xl(e, x.value)) {
5654
- w(Ql(x.value));
5675
+ }, ce = (t) => {
5676
+ a.value = t, nu(t, e.viewPreference);
5677
+ }, le = (e) => {
5678
+ if (!Ql(e, x.value)) {
5679
+ T(eu(x.value));
5655
5680
  return;
5656
5681
  }
5657
- let t = o.value.findIndex((t) => tu(t, e));
5682
+ let t = o.value.findIndex((t) => ru(t, e));
5658
5683
  if (t >= 0) {
5659
5684
  o.value.splice(t, 1), u.value = "";
5660
5685
  return;
5661
5686
  }
5662
- if (!ne.value) {
5663
- w(Zl(S.value));
5687
+ if (!te.value) {
5688
+ T($l(S.value));
5664
5689
  return;
5665
5690
  }
5666
5691
  o.value.push({ ...e }), u.value = "";
5667
- }, de = (t) => {
5668
- if (!Xl(t, x.value)) {
5669
- w(Ql(x.value));
5692
+ }, ue = (t) => {
5693
+ if (!Ql(t, x.value)) {
5694
+ T(eu(x.value));
5670
5695
  return;
5671
5696
  }
5672
5697
  if (S.value !== 1) {
5673
- ue(t);
5698
+ le(t);
5674
5699
  return;
5675
5700
  }
5676
5701
  _.value?.resolve([{ ...t }]), e.request.value = void 0;
5677
- }, fe = (e) => {
5678
- o.value = o.value.filter((t) => !tu(t, e));
5679
- }, pe = async (e) => {
5702
+ }, de = (e) => {
5703
+ o.value = o.value.filter((t) => !ru(t, e));
5704
+ }, fe = async (e) => {
5680
5705
  let t = _.value;
5681
5706
  if (!t || e.length === 0) return;
5682
5707
  let { accepted: n, rejected: r } = tr(e, {
@@ -5684,7 +5709,7 @@ var Vl = "sparq.asset-picker.view", Hl = {
5684
5709
  maxSize: t.options.maxSize,
5685
5710
  type: x.value
5686
5711
  });
5687
- r.length > 0 && w(`${r.length} 个文件类型不符合要求,已跳过。`), n.length !== 0 && v.add(n, {
5712
+ r.length > 0 && T(`${r.length} 个文件类型不符合要求,已跳过。`), n.length !== 0 && v.add(n, {
5688
5713
  type: x.value,
5689
5714
  accept: t.options.accept,
5690
5715
  maxSize: t.options.maxSize,
@@ -5692,23 +5717,23 @@ var Vl = "sparq.asset-picker.view", Hl = {
5692
5717
  field: t.options.field,
5693
5718
  props: t.options.props
5694
5719
  });
5695
- }, me = (e) => {
5720
+ }, pe = (e) => {
5696
5721
  v.retry(e);
5697
- }, he = (e) => {
5722
+ }, me = (e) => {
5698
5723
  v.cancel(e);
5699
- }, ge = (e) => {
5700
- if (!Xl(e, x.value)) {
5701
- w(Ql(x.value));
5724
+ }, he = (e) => {
5725
+ if (!Ql(e, x.value)) {
5726
+ T(eu(x.value));
5702
5727
  return;
5703
5728
  }
5704
- !o.value.some((t) => tu(t, e)) && ne.value ? o.value.push({ ...e }) : !o.value.some((t) => tu(t, e)) && !ne.value && w(Zl(S.value)), s.value = {
5729
+ !o.value.some((t) => ru(t, e)) && te.value ? o.value.push({ ...e }) : !o.value.some((t) => ru(t, e)) && !te.value && T($l(S.value)), s.value = {
5705
5730
  ...s.value,
5706
- results: [e, ...s.value.results.filter((t) => !tu(t, e))],
5731
+ results: [e, ...s.value.results.filter((t) => !ru(t, e))],
5707
5732
  total: s.value.total + 1
5708
5733
  };
5709
- }, _e = (e) => {
5734
+ }, ge = (e) => {
5710
5735
  ni(e, r) && f.open(e);
5711
- }, ve = async () => {
5736
+ }, _e = async () => {
5712
5737
  let e = _.value;
5713
5738
  if (!(!e?.config.addRemote || !p.value || h.value)) {
5714
5739
  h.value = !0;
@@ -5720,103 +5745,103 @@ var Vl = "sparq.asset-picker.view", Hl = {
5720
5745
  field: e.options.field,
5721
5746
  props: e.options.props
5722
5747
  });
5723
- t && (ge(t), p.value = "");
5748
+ t && (he(t), p.value = "");
5724
5749
  } catch (e) {
5725
- w(e instanceof Error ? e.message : "远程资源添加失败。");
5750
+ T(e instanceof Error ? e.message : "远程资源添加失败。");
5726
5751
  } finally {
5727
5752
  h.value = !1;
5728
5753
  }
5729
5754
  }
5730
- }, ye = (e) => {
5755
+ }, ve = (e) => {
5731
5756
  if (e.key === "Escape") {
5732
5757
  if (f.asset.value) {
5733
5758
  f.close();
5734
5759
  return;
5735
5760
  }
5736
- ae();
5761
+ ie();
5737
5762
  }
5738
5763
  };
5739
5764
  return () => {
5740
5765
  let e = _.value;
5741
5766
  if (!(!b.value || !e)) return A("div", { class: "sparq-asset-picker" }, [A("div", {
5742
5767
  class: "sparq-asset-picker__mask",
5743
- onClick: ae
5768
+ onClick: ie
5744
5769
  }), A("section", {
5745
5770
  class: "sparq-asset-picker__dialog",
5746
5771
  role: "dialog",
5747
5772
  "aria-modal": "true",
5748
5773
  tabindex: -1,
5749
- onKeydown: ye
5774
+ onKeydown: ve
5750
5775
  }, [
5751
- Al(ae, n),
5752
- jl({
5776
+ Ml(ie, n),
5777
+ Nl({
5753
5778
  ui: n,
5754
5779
  request: e,
5755
5780
  tab: i.value,
5756
5781
  selectedCount: o.value.length,
5757
5782
  limit: S.value,
5758
- canConfirm: te.value,
5783
+ canConfirm: ee.value,
5759
5784
  setTab(e) {
5760
5785
  i.value = e;
5761
5786
  },
5762
- confirm: oe
5787
+ confirm: ae
5763
5788
  }),
5764
5789
  u.value ? A("div", {
5765
5790
  class: "sparq-asset-picker__notice",
5766
5791
  role: "status",
5767
5792
  "aria-live": "polite"
5768
5793
  }, u.value) : void 0,
5769
- l.value ? n.render(ce, {
5794
+ l.value ? n.render(se, {
5770
5795
  type: "error",
5771
- title: lt(l.value, "资源加载失败。"),
5796
+ title: ct(l.value, "资源加载失败。"),
5772
5797
  showIcon: !0,
5773
5798
  closable: !1,
5774
5799
  "data-sparq-asset-load-error": ""
5775
5800
  }, { default: () => $(n, "重试", {
5776
5801
  size: "small",
5777
5802
  onClick() {
5778
- se();
5803
+ oe();
5779
5804
  },
5780
5805
  "data-sparq-asset-load-retry": ""
5781
5806
  }) }) : void 0,
5782
5807
  A("main", { class: "sparq-asset-picker__body" }, [
5783
- i.value === "server" ? Ll({
5808
+ i.value === "server" ? zl({
5784
5809
  request: e,
5785
5810
  view: a.value,
5786
5811
  search: g,
5787
5812
  payload: s.value,
5788
5813
  loading: c.value,
5789
- totalPages: ee.value,
5790
- typeOptions: re.value,
5791
- groupOptions: ie.value,
5814
+ totalPages: C.value,
5815
+ typeOptions: ne.value,
5816
+ groupOptions: re.value,
5792
5817
  pickerType: x.value,
5793
5818
  selected: o.value,
5794
5819
  ui: n,
5795
5820
  assetPreviews: r,
5796
5821
  setView(e) {
5797
- le(e);
5822
+ ce(e);
5798
5823
  },
5799
- submitSearch: C,
5800
- loadAssets: se,
5801
- toggleAsset: ue,
5802
- confirmAsset: de,
5803
- openPreview: _e,
5804
- isSameAsset: tu,
5805
- canSelectAsset: Xl,
5806
- resolveLimit: Yl,
5807
- handleAssetGridKeydown: Gl
5824
+ submitSearch: w,
5825
+ loadAssets: oe,
5826
+ toggleAsset: le,
5827
+ confirmAsset: ue,
5828
+ openPreview: ge,
5829
+ isSameAsset: ru,
5830
+ canSelectAsset: Ql,
5831
+ resolveLimit: Zl,
5832
+ handleAssetGridKeydown: ql
5808
5833
  }) : void 0,
5809
5834
  i.value === "upload" ? A("section", { class: "sparq-asset-picker__panel" }, [A(Jn, {
5810
5835
  tasks: y.value,
5811
5836
  accept: e.options.accept,
5812
5837
  emptyText: "上传成功的资源会自动加入已选。",
5813
5838
  onAddFiles(e) {
5814
- pe(e);
5839
+ fe(e);
5815
5840
  },
5816
- onRetry: me,
5817
- onCancel: he
5841
+ onRetry: pe,
5842
+ onCancel: me
5818
5843
  })]) : void 0,
5819
- i.value === "remote" ? Wl({
5844
+ i.value === "remote" ? Kl({
5820
5845
  enabled: !!e.config.addRemote,
5821
5846
  url: p.value,
5822
5847
  local: m.value,
@@ -5828,9 +5853,9 @@ var Vl = "sparq.asset-picker.view", Hl = {
5828
5853
  setLocal(e) {
5829
5854
  m.value = e;
5830
5855
  },
5831
- addRemote: ve
5856
+ addRemote: _e
5832
5857
  }) : void 0,
5833
- Ml(o.value, fe, n, r)
5858
+ Pl(o.value, de, n, r)
5834
5859
  ]),
5835
5860
  f.asset.value ? Gr(f.asset.value, {
5836
5861
  close: f.close,
@@ -5850,9 +5875,9 @@ var Vl = "sparq.asset-picker.view", Hl = {
5850
5875
  };
5851
5876
  }
5852
5877
  });
5853
- function Wl(e) {
5878
+ function Kl(e) {
5854
5879
  return e.enabled ? A("section", { class: "sparq-asset-picker__panel" }, [A("div", { class: "sparq-asset-picker__remote-form" }, [
5855
- Il(e.ui, e.url, {
5880
+ Rl(e.ui, e.url, {
5856
5881
  class: "sparq-asset-picker__input",
5857
5882
  type: "url",
5858
5883
  inputmode: "url",
@@ -5882,7 +5907,7 @@ function Wl(e) {
5882
5907
  })
5883
5908
  ]), A("div", { class: "sparq-asset-picker__empty" }, "添加成功的资源会自动加入已选。")]) : A("div", { class: "sparq-asset-picker__empty" }, "未配置远程资源添加接口。");
5884
5909
  }
5885
- function Gl(e) {
5910
+ function ql(e) {
5886
5911
  if (![
5887
5912
  "ArrowLeft",
5888
5913
  "ArrowRight",
@@ -5893,61 +5918,61 @@ function Gl(e) {
5893
5918
  if (!t || !n) return;
5894
5919
  let r = Array.from(n.querySelectorAll(".sparq-asset-picker__card:not(:disabled)")), i = r.indexOf(t);
5895
5920
  if (i < 0) return;
5896
- let a = Kl(n, r[0]), o = e.key === "ArrowLeft" ? i - 1 : e.key === "ArrowRight" ? i + 1 : e.key === "ArrowUp" ? i - a : i + a, s = r[Math.max(0, Math.min(r.length - 1, o))];
5921
+ let a = Jl(n, r[0]), o = e.key === "ArrowLeft" ? i - 1 : e.key === "ArrowRight" ? i + 1 : e.key === "ArrowUp" ? i - a : i + a, s = r[Math.max(0, Math.min(r.length - 1, o))];
5897
5922
  s && s !== t && (e.preventDefault(), s.focus());
5898
5923
  }
5899
- function Kl(e, t) {
5924
+ function Jl(e, t) {
5900
5925
  let n = t?.offsetWidth ?? 0;
5901
5926
  return n <= 0 || e.clientWidth <= 0 ? 4 : Math.max(1, Math.floor(e.clientWidth / n));
5902
5927
  }
5903
- function ql(e, t) {
5904
- let n = Array.isArray(e.results) ? e.results.filter((e) => Xl(e, t)) : [];
5928
+ function Yl(e, t) {
5929
+ let n = Array.isArray(e.results) ? e.results.filter((e) => Ql(e, t)) : [];
5905
5930
  return {
5906
5931
  results: n,
5907
5932
  total: Number(e.total ?? n.length),
5908
- groups: Jl(e.groups),
5909
- types: Jl(e.types)
5933
+ groups: Xl(e.groups),
5934
+ types: Xl(e.types)
5910
5935
  };
5911
5936
  }
5912
- function Jl(e) {
5937
+ function Xl(e) {
5913
5938
  return Array.isArray(e) ? e.filter((e) => e && e.value !== void 0).map((e) => ({
5914
5939
  label: String(e.label ?? e.value),
5915
5940
  value: String(e.value)
5916
5941
  })) : [];
5917
5942
  }
5918
- function Yl(e) {
5943
+ function Zl(e) {
5919
5944
  return e ? typeof e.options.limit == "number" && e.options.limit >= 0 ? e.options.limit : +!e.options.multiple : 1;
5920
5945
  }
5921
- function Xl(e, t) {
5946
+ function Ql(e, t) {
5922
5947
  return t === "image" ? U(e) === "image" : !0;
5923
5948
  }
5924
- function Zl(e) {
5949
+ function $l(e) {
5925
5950
  return e > 0 ? `最多只能选择 ${e} 个资源。` : "当前选择数量已达到上限。";
5926
5951
  }
5927
- function Ql(e) {
5952
+ function eu(e) {
5928
5953
  return e === "image" ? "当前字段只允许选择图片资源。" : "当前资源类型不符合要求。";
5929
5954
  }
5930
- function $l(e) {
5955
+ function tu(e) {
5931
5956
  let t = e?.read?.();
5932
5957
  if (t === "list" || t === "grid") return t;
5933
5958
  if (typeof window > "u") return "grid";
5934
- let n = window.localStorage?.getItem(Vl);
5959
+ let n = window.localStorage?.getItem(Ul);
5935
5960
  return n === "list" || n === "grid" ? n : "grid";
5936
5961
  }
5937
- function eu(e, t) {
5962
+ function nu(e, t) {
5938
5963
  if (t?.write) {
5939
5964
  t.write(e);
5940
5965
  return;
5941
5966
  }
5942
- typeof window > "u" || window.localStorage?.setItem(Vl, e);
5967
+ typeof window > "u" || window.localStorage?.setItem(Ul, e);
5943
5968
  }
5944
- function tu(e, t) {
5969
+ function ru(e, t) {
5945
5970
  return e.id !== void 0 && t.id !== void 0 ? e.id === t.id : e.url === t.url;
5946
5971
  }
5947
5972
  //#endregion
5948
5973
  //#region src/asset/picker/service.ts
5949
- function nu(e) {
5950
- let t = ru(), n = e.uiKit, r = !1;
5974
+ function iu(e) {
5975
+ let t = au(), n = e.uiKit, r = !1;
5951
5976
  return {
5952
5977
  upload: e.upload,
5953
5978
  pick(n) {
@@ -5967,29 +5992,29 @@ function nu(e) {
5967
5992
  function i() {
5968
5993
  if (typeof document > "u" || r) return;
5969
5994
  if (!n) throw Error("Sparq UI kit is required to render asset picker.");
5970
- let i = iu(e);
5995
+ let i = ou(e);
5971
5996
  if (!i) return;
5972
5997
  let a = document.createElement("div");
5973
- a.className = "sparq-asset-picker-root", i.appendChild(a), Ot(A(Ul, {
5998
+ a.className = "sparq-asset-picker-root", i.appendChild(a), Ot(A(Gl, {
5974
5999
  request: t,
5975
6000
  uiKit: n,
5976
6001
  viewPreference: e.viewPreference
5977
6002
  }), a), r = !0;
5978
6003
  }
5979
6004
  }
5980
- function ru() {
6005
+ function au() {
5981
6006
  return N();
5982
6007
  }
5983
- function iu(e) {
6008
+ function ou(e) {
5984
6009
  return typeof e.mountTarget == "function" ? e.mountTarget() : e.mountTarget ? e.mountTarget : document.body;
5985
6010
  }
5986
6011
  //#endregion
5987
6012
  //#region src/install.ts
5988
- function au(e, t) {
5989
- e.provide(kt, t.kernel), e.provide(At, t.runtime), e.provide(jt, t), e.provide(Lt, t.assetPreviews), t.uiAdapter && e.provide(Nt, t.uiAdapter), t.uiKit && e.provide(I, t.uiKit), t.components && e.provide(Pt, t.components), t.icons && e.provide(Ft, t.icons), t.richTextEditors && e.provide(It, t.richTextEditors), t.assetService && (t.uiKit && t.assetService.setUiKit?.(t.uiKit), e.provide(L, t.assetService)), t.presentationHost && e.provide(Mt, t.presentationHost), e.component("SparqView", Tl), e.component("SqRender", Qi);
6013
+ function su(e, t) {
6014
+ e.provide(kt, t.kernel), e.provide(At, t.runtime), e.provide(jt, t), e.provide(Lt, t.assetPreviews), t.uiAdapter && e.provide(Nt, t.uiAdapter), t.uiKit && e.provide(I, t.uiKit), t.components && e.provide(Pt, t.components), t.icons && e.provide(Ft, t.icons), t.richTextEditors && e.provide(It, t.richTextEditors), t.assetService && (t.uiKit && t.assetService.setUiKit?.(t.uiKit), e.provide(L, t.assetService)), t.presentationHost && e.provide(Mt, t.presentationHost), e.component("SparqView", Dl), e.component("SqRender", Qi);
5990
6015
  for (let [t, n] of Object.entries(ia)) e.component(t, n);
5991
6016
  }
5992
6017
  //#endregion
5993
- export { Ul as AssetPickerRoot, Ur as AssetPreviewDialog, ia as DEFAULT_CUSTOM_COMPONENTS, Y as FieldDisplay, oa as FieldLink, la as FileLinkList, si as FileUpload, _a as HelpText, Ht as IconInput, oi as ImageUpload, en as JsonEditor, fn as KeyValueEditor, zn as RichText, Lt as SPARQ_ASSET_PREVIEW_REGISTRY_KEY, L as SPARQ_ASSET_SERVICE_KEY, Pt as SPARQ_COMPONENT_REGISTRY_KEY, kt as SPARQ_FRONTEND_KERNEL_KEY, Ft as SPARQ_ICON_REGISTRY_KEY, It as SPARQ_RICH_TEXT_REGISTRY_KEY, Mt as SPARQ_SCHEMA_PRESENTATION_KEY, jt as SPARQ_SCHEMA_RENDERER_KEY, At as SPARQ_SCHEMA_RUNTIME_KEY, Nt as SPARQ_SCHEMA_UI_ADAPTER_KEY, I as SPARQ_UI_KIT_KEY, va as SectionBlock, Jn as SparqAssetUploadPanel, $n as SparqUploadValidationError, Tl as SparqView, ea as SqFileUpload, Bt as SqIcon, $t as SqIconInput, Ut as SqIconInputControl, ta as SqImageUpload, dn as SqJson, tn as SqJsonControl, Rn as SqKeyValue, pn as SqKeyValueControl, Qi as SqRender, Kn as SqRichText, Bn as SqRichTextControl, na as SqUpload, ci as SqUploadControl, Ca as StatusTag, Ra as Thumbnail, Lo as applyFieldWriteBack, Zo as auditTone, Xo as auditTypeLabel, Hr as builtInImageAssetPreview, nu as createAssetPickerService, Wr as createAssetPreviewState, aa as createDefaultCustomComponents, qa as createDefaultIconRegistry, $a as createDefaultRichTextRegistry, Va as createDefaultSemanticComponents, xo as createExpressionContext, ho as createLiveSchemaComponentRegistry, zr as createLiveSparqAssetPreviewRegistry, go as createLiveSparqIconRegistry, _o as createLiveSparqRichTextRegistry, Pc as createReadonlyRecordFormState, X as createSchemaActionContext, Ha as createSchemaComponentRegistry, Ao as createSchemaFeedback, vl as createSchemaPresentationActionHandler, Io as createSchemaRenderer, vo as createSchemaUiContext, Zi as createSchemaUiProxy, Ja as createSparqIconRegistry, eo as createSparqRichTextRegistry, ao as createSparqRichTextStickyStyle, mr as createSparqUploadExecutor, ar as createSparqUploadQueue, Do as createSparqViewController, Po as createSparqViewLoadingState, bo as createTableFilterContext, Ui as createUiKit, pr as defaultSparqMultipartThreshold, tr as filterSparqUploadFiles, ii as formatAssetSize, Z as formatDisplayValue, z as formatJsonValue, yn as formatKeyValue, So as getPrimaryKey, Co as getRecordId, Xi as getSchemaUiProxy, wo as getTableReloadView, dr as hashSparqUploadFile, au as installSchemaRenderer, mo as installSchemaRendererContribution, ni as isPreviewableAsset, No as loadSparqViewState, Ua as mergeSchemaComponentRegistry, Ya as mergeSparqIconRegistry, to as mergeSparqRichTextRegistry, Wi as mergeUiKit, Hi as normalizeChildren, nn as parseJsonText, bn as parseKeyValueText, yl as presentSchemaAction, ro as readSparqRichTextToolbar, q as renderAction, Gr as renderAssetPreviewDialog, Qr as renderAssetPreviewThumb, ds as renderAuditPanel, Jo as renderAuditPanelContent, us as renderAuditTrigger, W as renderContainer, ss as renderDefaultDetailPanelShell, Ri as renderDetailShell, ys as renderDetailStructure, Ps as renderEmbeddedViewBinding, xc as renderFieldNode, Li as renderFormShell, gs as renderFormStructure, Nc as renderLayoutItemsChildren, J as renderMissingUiRenderer, Q as renderOptionalSemanticHelp, Xc as renderPageStructure, tl as renderResolvedViewState, rl as renderSearchOperationStructure, vs as renderSearchStructure, K as renderSlot, no as renderSparqRichTextEditor, _l as renderSparqViewState, G as renderStatusContainer, nl as renderTableContainerStructure, _s as renderTableStructure, Mc as renderViewItems, Ii as renderViewSlot, Ko as resolveActionRuntimeState, ti as resolveAssetFileLabel, H as resolveAssetLabel, $r as resolveAssetSummary, U as resolveAssetType, ei as resolveAssetTypeLabel, Yo as resolveAuditRecordTitle, yo as resolveContextForm, Vi as resolveDetailPresentation, qc as resolveFormChildLayout, Bi as resolveFormOpen, zi as resolveFormPresentation, bl as resolveHostPresentationInput, Ma as resolveReadableTextColor, To as resolveReloadTableViewName, il as resolveSearchItemsStructure, io as resolveSparqRichTextToolbarItems, Mo as resolveSparqViewState, Rr as schemaRendererAssetPreviewPoint, uo as schemaRendererComponentPoint, fo as schemaRendererIconPoint, po as schemaRendererRichTextPoint, xn as toKeyValueObject, B as toKeyValueRows, ko as useSchemaFeedback, Yi as useSchemaUi, Br as useSparqAssetPreviewRegistry, Wa as useSparqComponents, Xa as useSparqIcons, oo as useSparqRichTextEditors, Gi as useSparqUi, Oo as useSparqView, er as validateSparqUploadFile };
6018
+ export { Gl as AssetPickerRoot, Ur as AssetPreviewDialog, ia as DEFAULT_CUSTOM_COMPONENTS, Y as FieldDisplay, oa as FieldLink, la as FileLinkList, si as FileUpload, _a as HelpText, Ht as IconInput, oi as ImageUpload, en as JsonEditor, fn as KeyValueEditor, zn as RichText, Lt as SPARQ_ASSET_PREVIEW_REGISTRY_KEY, L as SPARQ_ASSET_SERVICE_KEY, Pt as SPARQ_COMPONENT_REGISTRY_KEY, kt as SPARQ_FRONTEND_KERNEL_KEY, Ft as SPARQ_ICON_REGISTRY_KEY, It as SPARQ_RICH_TEXT_REGISTRY_KEY, Mt as SPARQ_SCHEMA_PRESENTATION_KEY, jt as SPARQ_SCHEMA_RENDERER_KEY, At as SPARQ_SCHEMA_RUNTIME_KEY, Nt as SPARQ_SCHEMA_UI_ADAPTER_KEY, I as SPARQ_UI_KIT_KEY, va as SectionBlock, Jn as SparqAssetUploadPanel, $n as SparqUploadValidationError, Dl as SparqView, ea as SqFileUpload, Bt as SqIcon, $t as SqIconInput, Ut as SqIconInputControl, ta as SqImageUpload, dn as SqJson, tn as SqJsonControl, Rn as SqKeyValue, pn as SqKeyValueControl, Qi as SqRender, Kn as SqRichText, Bn as SqRichTextControl, na as SqUpload, ci as SqUploadControl, Ca as StatusTag, Ra as Thumbnail, Ro as applyFieldWriteBack, $o as auditTone, Qo as auditTypeLabel, Hr as builtInImageAssetPreview, iu as createAssetPickerService, Wr as createAssetPreviewState, aa as createDefaultCustomComponents, qa as createDefaultIconRegistry, $a as createDefaultRichTextRegistry, Va as createDefaultSemanticComponents, X as createExpressionContext, _o as createLiveSchemaComponentRegistry, zr as createLiveSparqAssetPreviewRegistry, vo as createLiveSparqIconRegistry, yo as createLiveSparqRichTextRegistry, Ic as createReadonlyRecordFormState, Z as createSchemaActionContext, Ha as createSchemaComponentRegistry, jo as createSchemaFeedback, bl as createSchemaPresentationActionHandler, Lo as createSchemaRenderer, bo as createSchemaUiContext, Zi as createSchemaUiProxy, Ja as createSparqIconRegistry, eo as createSparqRichTextRegistry, so as createSparqRichTextStickyStyle, mr as createSparqUploadExecutor, ar as createSparqUploadQueue, Oo as createSparqViewController, Fo as createSparqViewLoadingState, So as createTableFilterContext, Ui as createUiKit, pr as defaultSparqMultipartThreshold, tr as filterSparqUploadFiles, ii as formatAssetSize, Yo as formatDisplayValue, z as formatJsonValue, yn as formatKeyValue, Co as getPrimaryKey, wo as getRecordId, Xi as getSchemaUiProxy, To as getTableReloadView, dr as hashSparqUploadFile, su as installSchemaRenderer, go as installSchemaRendererContribution, ni as isPreviewableAsset, Po as loadSparqViewState, Ua as mergeSchemaComponentRegistry, Ya as mergeSparqIconRegistry, to as mergeSparqRichTextRegistry, Wi as mergeUiKit, Hi as normalizeChildren, nn as parseJsonText, bn as parseKeyValueText, xl as presentSchemaAction, ro as readSparqRichTextFormat, ao as readSparqRichTextToolbar, q as renderAction, Gr as renderAssetPreviewDialog, Qr as renderAssetPreviewThumb, ps as renderAuditPanel, Xo as renderAuditPanelContent, fs as renderAuditTrigger, W as renderContainer, ls as renderDefaultDetailPanelShell, Ri as renderDetailShell, xs as renderDetailStructure, Is as renderEmbeddedViewBinding, Cc as renderFieldNode, Li as renderFormShell, vs as renderFormStructure, Fc as renderLayoutItemsChildren, J as renderMissingUiRenderer, Q as renderOptionalSemanticHelp, Qc as renderPageStructure, rl as renderResolvedViewState, al as renderSearchOperationStructure, bs as renderSearchStructure, K as renderSlot, no as renderSparqRichTextEditor, yl as renderSparqViewState, G as renderStatusContainer, il as renderTableContainerStructure, ys as renderTableStructure, Pc as renderViewItems, Ii as renderViewSlot, qo as resolveActionRuntimeState, ti as resolveAssetFileLabel, H as resolveAssetLabel, $r as resolveAssetSummary, U as resolveAssetType, ei as resolveAssetTypeLabel, Zo as resolveAuditRecordTitle, xo as resolveContextForm, Vi as resolveDetailPresentation, Yc as resolveFormChildLayout, Bi as resolveFormOpen, zi as resolveFormPresentation, Sl as resolveHostPresentationInput, Ma as resolveReadableTextColor, Eo as resolveReloadTableViewName, ol as resolveSearchItemsStructure, oo as resolveSparqRichTextToolbarItems, No as resolveSparqViewState, Rr as schemaRendererAssetPreviewPoint, po as schemaRendererComponentPoint, mo as schemaRendererIconPoint, ho as schemaRendererRichTextPoint, io as supportsSparqRichTextFormat, xn as toKeyValueObject, B as toKeyValueRows, Ao as useSchemaFeedback, Yi as useSchemaUi, Br as useSparqAssetPreviewRegistry, Wa as useSparqComponents, Xa as useSparqIcons, co as useSparqRichTextEditors, Gi as useSparqUi, ko as useSparqView, er as validateSparqUploadFile };
5994
6019
 
5995
6020
  //# sourceMappingURL=index.js.map