@hkyhy/marsun-components-core 0.1.118 → 0.1.120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/components/Audit/AuditLogList.d.ts +4 -0
  2. package/dist/components/Audit/AuditLogList.js +168 -166
  3. package/dist/components/Audit/AuditLogList.js.map +1 -1
  4. package/dist/components/Audit/AuditStepPerfChart.d.ts +10 -0
  5. package/dist/components/Audit/AuditStepPerfChart.js +51 -0
  6. package/dist/components/Audit/AuditStepPerfChart.js.map +1 -0
  7. package/dist/components/Audit/AuditWaterfall.d.ts +5 -1
  8. package/dist/components/Audit/AuditWaterfall.js +50 -34
  9. package/dist/components/Audit/AuditWaterfall.js.map +1 -1
  10. package/dist/components/Audit/Chart/createLazyPlot.d.ts +4 -0
  11. package/dist/components/Audit/Chart/createLazyPlot.js +12 -11
  12. package/dist/components/Audit/Chart/createLazyPlot.js.map +1 -1
  13. package/dist/components/Audit/detailKpi.d.ts +8 -3
  14. package/dist/components/Audit/detailKpi.js +28 -20
  15. package/dist/components/Audit/detailKpi.js.map +1 -1
  16. package/dist/components/Audit/index.d.ts +4 -2
  17. package/dist/components/Audit/style.module.scss.js +48 -28
  18. package/dist/components/Audit/style.module.scss.js.map +1 -1
  19. package/dist/components/Filter/createKneFilterField.js +55 -53
  20. package/dist/components/Filter/createKneFilterField.js.map +1 -1
  21. package/dist/components/Form/SuperSelect.d.ts +1 -0
  22. package/dist/components/Form/SuperSelect.js +67 -58
  23. package/dist/components/Form/SuperSelect.js.map +1 -1
  24. package/dist/components/Form/createPagedSuperSelectApi.d.ts +60 -0
  25. package/dist/components/Form/createPagedSuperSelectApi.js +46 -0
  26. package/dist/components/Form/createPagedSuperSelectApi.js.map +1 -0
  27. package/dist/components/Form/index.d.ts +3 -0
  28. package/dist/components/Form/superSelectEmpty.d.ts +5 -0
  29. package/dist/components/Form/superSelectEmpty.js +11 -0
  30. package/dist/components/Form/superSelectEmpty.js.map +1 -0
  31. package/dist/components/FormInfo/fields.d.ts +2 -0
  32. package/dist/components/FormInfo/fields.js.map +1 -1
  33. package/dist/components/FormInfo/index.d.ts +2 -2
  34. package/dist/components/ReactFilter/fields/index.js +35 -27
  35. package/dist/components/ReactFilter/fields/index.js.map +1 -1
  36. package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.d.ts +20 -0
  37. package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.js +82 -0
  38. package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.js.map +1 -0
  39. package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.module.scss.js +7 -0
  40. package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.module.scss.js.map +1 -0
  41. package/dist/components/Tools/ActionTracking/Cancel/index.d.ts +3 -0
  42. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.d.ts +25 -0
  43. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.js +257 -0
  44. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.js.map +1 -0
  45. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.module.scss.js +10 -0
  46. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.module.scss.js.map +1 -0
  47. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.d.ts +47 -0
  48. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.js +148 -0
  49. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.js.map +1 -0
  50. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.module.scss.js +7 -0
  51. package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.module.scss.js.map +1 -0
  52. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.d.ts +18 -0
  53. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.js +73 -0
  54. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.js.map +1 -0
  55. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.module.scss.js +5 -0
  56. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.module.scss.js.map +1 -0
  57. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.d.ts +19 -0
  58. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.js +62 -0
  59. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.js.map +1 -0
  60. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.module.scss.js +8 -0
  61. package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.module.scss.js.map +1 -0
  62. package/dist/components/Tools/ActionTracking/CreateAction/SetFormFields.d.ts +4 -0
  63. package/dist/components/Tools/ActionTracking/CreateAction/SetFormFields.js +14 -0
  64. package/dist/components/Tools/ActionTracking/CreateAction/SetFormFields.js.map +1 -0
  65. package/dist/components/Tools/ActionTracking/CreateAction/index.d.ts +12 -0
  66. package/dist/components/Tools/ActionTracking/CreateAction/personCascadePath.d.ts +5 -0
  67. package/dist/components/Tools/ActionTracking/CreateAction/personCascadePath.js +30 -0
  68. package/dist/components/Tools/ActionTracking/CreateAction/personCascadePath.js.map +1 -0
  69. package/dist/components/Tools/ActionTracking/CreateAction/submitHelpers.d.ts +8 -0
  70. package/dist/components/Tools/ActionTracking/CreateAction/submitHelpers.js +35 -0
  71. package/dist/components/Tools/ActionTracking/CreateAction/submitHelpers.js.map +1 -0
  72. package/dist/components/Tools/ActionTracking/CreateAction/types.d.ts +108 -0
  73. package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.d.ts +27 -0
  74. package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.js +107 -0
  75. package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.js.map +1 -0
  76. package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.module.scss.js +11 -0
  77. package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.module.scss.js.map +1 -0
  78. package/dist/components/Tools/ActionTracking/Follow/index.d.ts +3 -0
  79. package/dist/components/Tools/ActionTracking/List/ActionFilterBar.d.ts +23 -0
  80. package/dist/components/Tools/ActionTracking/List/ActionFilterBar.js +31 -0
  81. package/dist/components/Tools/ActionTracking/List/ActionFilterBar.js.map +1 -0
  82. package/dist/components/Tools/ActionTracking/List/ActionFilterBar.module.scss.js +8 -0
  83. package/dist/components/Tools/ActionTracking/List/ActionFilterBar.module.scss.js.map +1 -0
  84. package/dist/components/Tools/ActionTracking/List/ActionListTable.d.ts +29 -0
  85. package/dist/components/Tools/ActionTracking/List/ActionListTable.js +76 -0
  86. package/dist/components/Tools/ActionTracking/List/ActionListTable.js.map +1 -0
  87. package/dist/components/Tools/ActionTracking/List/ActionListTable.module.scss.js +8 -0
  88. package/dist/components/Tools/ActionTracking/List/ActionListTable.module.scss.js.map +1 -0
  89. package/dist/components/Tools/ActionTracking/List/filterDefaults.d.ts +15 -0
  90. package/dist/components/Tools/ActionTracking/List/filterDefaults.js +27 -0
  91. package/dist/components/Tools/ActionTracking/List/filterDefaults.js.map +1 -0
  92. package/dist/components/Tools/ActionTracking/List/index.d.ts +6 -0
  93. package/dist/components/Tools/ActionTracking/List/listTypes.d.ts +49 -0
  94. package/dist/components/Tools/ActionTracking/{ActionTrackingShell.d.ts → Shell/ActionTrackingShell.d.ts} +1 -1
  95. package/dist/components/Tools/ActionTracking/{ActionTrackingShell.js → Shell/ActionTrackingShell.js} +1 -1
  96. package/dist/components/Tools/ActionTracking/Shell/ActionTrackingShell.js.map +1 -0
  97. package/dist/components/Tools/ActionTracking/Shell/index.d.ts +3 -0
  98. package/dist/components/Tools/ActionTracking/index.d.ts +11 -2
  99. package/dist/components/Tools/ActionTracking/utils/index.d.ts +1 -0
  100. package/dist/components/Tools/ActionTracking/utils/sanitizeActionHtml.d.ts +2 -0
  101. package/dist/components/Tools/index.d.ts +2 -0
  102. package/dist/form-info.d.ts +3 -0
  103. package/dist/form-info.js +80 -72
  104. package/dist/form-info.js.map +1 -1
  105. package/dist/index.js +867 -820
  106. package/dist/index.js.map +1 -1
  107. package/dist/marsun-components-core.css +2 -2
  108. package/dist/styles/global.css +2 -2
  109. package/package.json +1 -1
  110. package/dist/components/Tools/ActionTracking/ActionTrackingShell.js.map +0 -1
  111. /package/dist/components/Tools/ActionTracking/{style.module.scss.js → Shell/style.module.scss.js} +0 -0
  112. /package/dist/components/Tools/ActionTracking/{style.module.scss.js.map → Shell/style.module.scss.js.map} +0 -0
@@ -1,36 +1,56 @@
1
- const t = "_wrap_1wy8p_2", o = "_filter_1wy8p_6", s = "_statsBar_1wy8p_10", _ = "_statsBarCards_1wy8p_18", a = "_detail_1wy8p_23", c = "_actionCode_1wy8p_29", n = "_stepBody_1wy8p_38", e = "_stepMeta_1wy8p_47", p = "_blockLabel_1wy8p_54", r = "_jsonWrap_1wy8p_60", l = "_jsonScroll_1wy8p_65", y = "_jsonBlock_1wy8p_70", w = "_truncateHint_1wy8p_86", i = "_kpiBlock_1wy8p_92", B = "_truncateNote_1wy8p_96", d = {
1
+ const t = "_wrap_fkgi3_2", i = "_filter_fkgi3_6", n = "_statsBar_fkgi3_10", _ = "_statsBarCards_fkgi3_18", o = "_detail_fkgi3_23", s = "_actionCode_fkgi3_29", a = "_stepBody_fkgi3_38", g = "_blockLabel_fkgi3_54", e = "_jsonWrap_fkgi3_60", c = "_jsonScroll_fkgi3_65", r = "_jsonBlock_fkgi3_70", k = "_truncateHint_fkgi3_86", l = "_kpiBlock_fkgi3_92", f = "_truncateNote_fkgi3_96", m = "_timing_fkgi3_103", B = "_timingRows_fkgi3_109", d = "_timingRow_fkgi3_109", p = "_timingLabel_fkgi3_123", b = "_timingTrack_fkgi3_132", j = "_timingBar_fkgi3_139", w = "_timingBarThin_fkgi3_147", H = "_timingMs_fkgi3_151", T = "_timingFoot_fkgi3_160", u = "_stepHeader_fkgi3_169", C = "_stepHeaderTitle_fkgi3_178", L = {
2
2
  wrap: t,
3
- filter: o,
4
- statsBar: s,
3
+ filter: i,
4
+ statsBar: n,
5
5
  statsBarCards: _,
6
- detail: a,
7
- actionCode: c,
8
- stepBody: n,
9
- stepMeta: e,
10
- blockLabel: p,
11
- jsonWrap: r,
12
- jsonScroll: l,
13
- jsonBlock: y,
14
- truncateHint: w,
15
- kpiBlock: i,
16
- truncateNote: B
6
+ detail: o,
7
+ actionCode: s,
8
+ stepBody: a,
9
+ blockLabel: g,
10
+ jsonWrap: e,
11
+ jsonScroll: c,
12
+ jsonBlock: r,
13
+ truncateHint: k,
14
+ kpiBlock: l,
15
+ truncateNote: f,
16
+ timing: m,
17
+ timingRows: B,
18
+ timingRow: d,
19
+ timingLabel: p,
20
+ timingTrack: b,
21
+ timingBar: j,
22
+ timingBarThin: w,
23
+ timingMs: H,
24
+ timingFoot: T,
25
+ stepHeader: u,
26
+ stepHeaderTitle: C
17
27
  };
18
28
  export {
19
- c as actionCode,
20
- p as blockLabel,
21
- d as default,
22
- a as detail,
23
- o as filter,
24
- y as jsonBlock,
25
- l as jsonScroll,
26
- r as jsonWrap,
27
- i as kpiBlock,
28
- s as statsBar,
29
+ s as actionCode,
30
+ g as blockLabel,
31
+ L as default,
32
+ o as detail,
33
+ i as filter,
34
+ r as jsonBlock,
35
+ c as jsonScroll,
36
+ e as jsonWrap,
37
+ l as kpiBlock,
38
+ n as statsBar,
29
39
  _ as statsBarCards,
30
- n as stepBody,
31
- e as stepMeta,
32
- w as truncateHint,
33
- B as truncateNote,
40
+ a as stepBody,
41
+ u as stepHeader,
42
+ C as stepHeaderTitle,
43
+ m as timing,
44
+ j as timingBar,
45
+ w as timingBarThin,
46
+ T as timingFoot,
47
+ p as timingLabel,
48
+ H as timingMs,
49
+ d as timingRow,
50
+ B as timingRows,
51
+ b as timingTrack,
52
+ k as truncateHint,
53
+ f as truncateNote,
34
54
  t as wrap
35
55
  };
36
56
  //# sourceMappingURL=style.module.scss.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,107 +1,109 @@
1
- import { jsx as b } from "react/jsx-runtime";
2
- import { useRef as N, useState as E, useEffect as k, useMemo as O } from "react";
1
+ import { jsx as M } from "react/jsx-runtime";
2
+ import { useRef as N, useState as B, useEffect as y, useMemo as O } from "react";
3
3
  import P from "./FilterPopover/index.js";
4
4
  import { resolveFilterVisible as W } from "./types.js";
5
5
  import { useFilterFieldBridge as $, useFilterRegister as q } from "./useFilterState.js";
6
- import { marsunToKne as n, marsunValueLabel as z, kneValueLabel as G, mergeKneLabelMaps as V, kneToMarsun as H } from "./kneValueAdapter.js";
7
- import D from "./createKneFilterField.module.scss.js";
8
- import R from "classnames";
6
+ import { marsunToKne as n, marsunValueLabel as z, kneValueLabel as G, mergeKneLabelMaps as k, kneToMarsun as H } from "./kneValueAdapter.js";
7
+ import S from "./createKneFilterField.module.scss.js";
8
+ import V from "classnames";
9
9
  import { renderSelectListItemContent as J } from "../ReactFilter/renderSelectListItemContent.js";
10
- function g(a, f) {
11
- const M = ({
12
- filterKey: s,
13
- label: T,
10
+ import { defaultSuperSelectEmpty as Q } from "../Form/superSelectEmpty.js";
11
+ function er(p, a) {
12
+ const L = ({
13
+ filterKey: m,
14
+ label: D,
14
15
  value: r,
15
16
  onChange: e,
16
17
  single: t = !1,
17
- panelWidth: v = (f == null ? void 0 : f.panelWidth) ?? 420,
18
- active: w,
19
- hidden: y,
18
+ panelWidth: T = (a == null ? void 0 : a.panelWidth) ?? 420,
19
+ active: v,
20
+ hidden: w,
20
21
  display: A,
21
- dependsOn: I,
22
- clearOnDepsChange: S = !0,
23
- renderItemContent: j,
24
- ...L
22
+ dependsOn: E,
23
+ clearOnDepsChange: I = !0,
24
+ renderItemContent: R,
25
+ ...f
25
26
  }) => {
26
27
  const l = N({
27
28
  labelMap: {},
28
29
  itemMap: {}
29
- }), [u, m] = E(
30
+ }), [u, s] = B(
30
31
  () => n(r, { single: t, ...l.current })
31
32
  ), o = N(e);
32
33
  o.current = e;
33
- const { resolvedLabel: p } = $({
34
- filterKey: s,
34
+ const { resolvedLabel: d } = $({
35
+ filterKey: m,
35
36
  value: r,
36
- label: T,
37
- dependsOn: I,
38
- clearOnDepsChange: S,
37
+ label: D,
38
+ dependsOn: E,
39
+ clearOnDepsChange: I,
39
40
  onDepsClear: () => {
40
41
  var i;
41
42
  return (i = o.current) == null ? void 0 : i.call(o, void 0);
42
43
  }
43
- }), c = q(), d = W({ display: A, hidden: y });
44
- k(() => {
45
- m(n(r, { single: t, ...l.current }));
44
+ }), c = q(), F = W({ display: A, hidden: w });
45
+ y(() => {
46
+ s(n(r, { single: t, ...l.current }));
46
47
  }, [r, t]);
47
- const F = O(() => {
48
+ const b = O(() => {
48
49
  const i = z(r, l.current.labelMap);
49
50
  return i || G(n(r, { single: t, ...l.current }), t);
50
51
  }, [r, t]);
51
- if (k(() => {
52
+ if (y(() => {
52
53
  if (c) {
53
- if (!d) {
54
- c.unregister(s);
54
+ if (!F) {
55
+ c.unregister(m);
55
56
  return;
56
57
  }
57
- F ? c.register(s, {
58
- label: p,
59
- valueLabel: F,
58
+ b ? c.register(m, {
59
+ label: d,
60
+ valueLabel: b,
60
61
  onRemove: () => e == null ? void 0 : e(void 0)
61
- }) : c.unregister(s);
62
+ }) : c.unregister(m);
62
63
  }
63
- }, [F, s, p, d]), !d) return null;
64
- const x = Array.isArray(r) ? r.length > 0 : r != null && r !== "", B = (i) => {
65
- l.current = V(i, l.current), m(i);
64
+ }, [b, m, d, F]), !F) return null;
65
+ const j = Array.isArray(r) ? r.length > 0 : r != null && r !== "", x = (i) => {
66
+ l.current = k(i, l.current), s(i);
66
67
  };
67
- return /* @__PURE__ */ b(
68
+ return /* @__PURE__ */ M(
68
69
  P,
69
70
  {
70
- label: p,
71
- active: w || x,
72
- width: v,
71
+ label: d,
72
+ active: v || j,
73
+ width: T,
73
74
  onOpenChange: (i) => {
74
- i && m(n(r, { single: t, ...l.current }));
75
+ i && s(n(r, { single: t, ...l.current }));
75
76
  },
76
77
  onConfirm: () => {
77
- l.current = V(u, l.current), e == null || e(H(u, t));
78
+ l.current = k(u, l.current), e == null || e(H(u, t));
78
79
  },
79
80
  onReset: () => {
80
- m(t ? null : []), e == null || e(void 0);
81
+ s(t ? null : []), e == null || e(void 0);
81
82
  },
82
- children: /* @__PURE__ */ b("div", { className: R("kne-filter-field-panel", D["kne-filter-field-panel"]), children: /* @__PURE__ */ b(
83
- a,
83
+ children: /* @__PURE__ */ M("div", { className: V("kne-filter-field-panel", S["kne-filter-field-panel"]), children: /* @__PURE__ */ M(
84
+ p,
84
85
  {
85
- ...L,
86
- className: R(
86
+ ...f,
87
+ className: V(
87
88
  "kne-filter-field-inner",
88
- D["kne-filter-field-inner"],
89
- L.className
89
+ S["kne-filter-field-inner"],
90
+ f.className
90
91
  ),
91
92
  single: t,
92
93
  allowClear: !1,
93
94
  valueType: "all",
94
95
  value: u ?? (t ? null : []),
95
- onChange: B,
96
- renderItemContent: j || J
96
+ onChange: x,
97
+ empty: f.empty ?? Q(),
98
+ renderItemContent: R || J
97
99
  }
98
100
  ) })
99
101
  }
100
102
  );
101
103
  };
102
- return M.displayName = `KneFilterField(${a.displayName || a.name || "Component"})`, M;
104
+ return L.displayName = `KneFilterField(${p.displayName || p.name || "Component"})`, L;
103
105
  }
104
106
  export {
105
- g as createKneFilterField
107
+ er as createKneFilterField
106
108
  };
107
109
  //# sourceMappingURL=createKneFilterField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createKneFilterField.js","sources":["../../../src/components/Filter/createKneFilterField.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport FilterPopover from './FilterPopover';\nimport type { BaseFilterProps } from './types';\nimport { resolveFilterVisible } from './types';\nimport { useFilterFieldBridge, useFilterRegister } from './useFilterState';\nimport {\n kneToMarsun,\n kneValueLabel,\n marsunToKne,\n marsunValueLabel,\n mergeKneLabelMaps,\n type KneSelectItem,\n type MarsunSelectValue,\n} from './kneValueAdapter';\nimport styles from './createKneFilterField.module.scss';\nimport classNames from 'classnames';\nimport { renderSelectListItemContent } from '../ReactFilter/renderSelectListItemContent';\n\nexport type KneFilterFieldProps = BaseFilterProps & {\n value?: MarsunSelectValue;\n onChange?: (value: MarsunSelectValue) => void;\n /** 对齐 kne:true 单选 */\n single?: boolean;\n /** 面板宽度 */\n panelWidth?: number;\n /** 透传给 kne 组件的其余 props */\n [key: string]: unknown;\n};\n\ntype KneComponentProps = Record<string, unknown> & {\n value?: KneSelectItem | KneSelectItem[] | null;\n onChange?: (v: KneSelectItem | KneSelectItem[] | null) => void;\n single?: boolean;\n valueType?: string;\n allowClear?: boolean;\n className?: string;\n};\n\n/**\n * 将 kne SuperSelect / plus 选择器包进 CommonFilter:FilterPopover 壳 + Marsun 值适配。\n */\nexport function createKneFilterField(\n KneComponent: React.ComponentType<KneComponentProps>,\n defaults?: { panelWidth?: number },\n) {\n const KneFilterField: React.FC<KneFilterFieldProps> = ({\n filterKey,\n label,\n value,\n onChange,\n single = false,\n panelWidth = defaults?.panelWidth ?? 420,\n active,\n hidden,\n display,\n dependsOn,\n clearOnDepsChange = true,\n renderItemContent,\n ...kneRest\n }) => {\n const mapsRef = useRef({\n labelMap: {} as Record<string, string>,\n itemMap: {} as Record<string, KneSelectItem>,\n });\n const [draft, setDraft] = useState<KneSelectItem | KneSelectItem[] | null>(() =>\n marsunToKne(value, { single, ...mapsRef.current }),\n );\n\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const { resolvedLabel } = useFilterFieldBridge({\n filterKey,\n value,\n label,\n dependsOn,\n clearOnDepsChange,\n onDepsClear: () => onChangeRef.current?.(undefined),\n });\n\n const registerFn = useFilterRegister();\n const visible = resolveFilterVisible({ display, hidden });\n\n useEffect(() => {\n setDraft(marsunToKne(value, { single, ...mapsRef.current }));\n }, [value, single]);\n\n const valueLabel = useMemo(() => {\n const fromMaps = marsunValueLabel(value, mapsRef.current.labelMap);\n if (fromMaps) return fromMaps;\n return kneValueLabel(marsunToKne(value, { single, ...mapsRef.current }), single);\n }, [value, single]);\n\n useEffect(() => {\n if (!registerFn) return;\n if (!visible) {\n registerFn.unregister(filterKey);\n return;\n }\n if (valueLabel) {\n registerFn.register(filterKey, {\n label: resolvedLabel,\n valueLabel,\n onRemove: () => onChange?.(undefined),\n });\n } else {\n registerFn.unregister(filterKey);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueLabel, filterKey, resolvedLabel, visible]);\n\n if (!visible) return null;\n\n const hasValue = Array.isArray(value) ? value.length > 0 : value != null && value !== '';\n\n const handleDraftChange = (next: KneSelectItem | KneSelectItem[] | null) => {\n mapsRef.current = mergeKneLabelMaps(next, mapsRef.current);\n setDraft(next);\n };\n\n return (\n <FilterPopover\n label={resolvedLabel}\n active={active || hasValue}\n width={panelWidth}\n onOpenChange={(open) => {\n if (open) setDraft(marsunToKne(value, { single, ...mapsRef.current }));\n }}\n onConfirm={() => {\n mapsRef.current = mergeKneLabelMaps(draft, mapsRef.current);\n onChange?.(kneToMarsun(draft, single));\n }}\n onReset={() => {\n setDraft(single ? null : []);\n onChange?.(undefined);\n }}\n >\n <div className={classNames('kne-filter-field-panel', styles['kne-filter-field-panel'])}>\n <KneComponent\n {...(kneRest as KneComponentProps)}\n className={classNames(\n 'kne-filter-field-inner',\n styles['kne-filter-field-inner'],\n kneRest.className as string | undefined,\n )}\n single={single}\n allowClear={false}\n valueType=\"all\"\n value={draft ?? (single ? null : [])}\n onChange={handleDraftChange}\n renderItemContent={\n (renderItemContent as ((ctx: unknown) => React.ReactNode) | undefined) ||\n renderSelectListItemContent\n }\n />\n </div>\n </FilterPopover>\n );\n };\n\n KneFilterField.displayName = `KneFilterField(${KneComponent.displayName || KneComponent.name || 'Component'})`;\n return KneFilterField;\n}\n"],"names":["createKneFilterField","KneComponent","defaults","KneFilterField","filterKey","label","value","onChange","single","panelWidth","active","hidden","display","dependsOn","clearOnDepsChange","renderItemContent","kneRest","mapsRef","useRef","draft","setDraft","useState","marsunToKne","onChangeRef","resolvedLabel","useFilterFieldBridge","_a","registerFn","useFilterRegister","visible","resolveFilterVisible","useEffect","valueLabel","useMemo","fromMaps","marsunValueLabel","kneValueLabel","hasValue","handleDraftChange","next","mergeKneLabelMaps","jsx","FilterPopover","open","kneToMarsun","classNames","styles","renderSelectListItemContent"],"mappings":"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"}
1
+ {"version":3,"file":"createKneFilterField.js","sources":["../../../src/components/Filter/createKneFilterField.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport FilterPopover from './FilterPopover';\nimport type { BaseFilterProps } from './types';\nimport { resolveFilterVisible } from './types';\nimport { useFilterFieldBridge, useFilterRegister } from './useFilterState';\nimport {\n kneToMarsun,\n kneValueLabel,\n marsunToKne,\n marsunValueLabel,\n mergeKneLabelMaps,\n type KneSelectItem,\n type MarsunSelectValue,\n} from './kneValueAdapter';\nimport styles from './createKneFilterField.module.scss';\nimport classNames from 'classnames';\nimport { renderSelectListItemContent } from '../ReactFilter/renderSelectListItemContent';\nimport { defaultSuperSelectEmpty } from '../Form/superSelectEmpty';\n\nexport type KneFilterFieldProps = BaseFilterProps & {\n value?: MarsunSelectValue;\n onChange?: (value: MarsunSelectValue) => void;\n /** 对齐 kne:true 单选 */\n single?: boolean;\n /** 面板宽度 */\n panelWidth?: number;\n /** 透传给 kne 组件的其余 props */\n [key: string]: unknown;\n};\n\ntype KneComponentProps = Record<string, unknown> & {\n value?: KneSelectItem | KneSelectItem[] | null;\n onChange?: (v: KneSelectItem | KneSelectItem[] | null) => void;\n single?: boolean;\n valueType?: string;\n allowClear?: boolean;\n className?: string;\n};\n\n/**\n * 将 kne SuperSelect / plus 选择器包进 CommonFilter:FilterPopover 壳 + Marsun 值适配。\n */\nexport function createKneFilterField(\n KneComponent: React.ComponentType<KneComponentProps>,\n defaults?: { panelWidth?: number },\n) {\n const KneFilterField: React.FC<KneFilterFieldProps> = ({\n filterKey,\n label,\n value,\n onChange,\n single = false,\n panelWidth = defaults?.panelWidth ?? 420,\n active,\n hidden,\n display,\n dependsOn,\n clearOnDepsChange = true,\n renderItemContent,\n ...kneRest\n }) => {\n const mapsRef = useRef({\n labelMap: {} as Record<string, string>,\n itemMap: {} as Record<string, KneSelectItem>,\n });\n const [draft, setDraft] = useState<KneSelectItem | KneSelectItem[] | null>(() =>\n marsunToKne(value, { single, ...mapsRef.current }),\n );\n\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const { resolvedLabel } = useFilterFieldBridge({\n filterKey,\n value,\n label,\n dependsOn,\n clearOnDepsChange,\n onDepsClear: () => onChangeRef.current?.(undefined),\n });\n\n const registerFn = useFilterRegister();\n const visible = resolveFilterVisible({ display, hidden });\n\n useEffect(() => {\n setDraft(marsunToKne(value, { single, ...mapsRef.current }));\n }, [value, single]);\n\n const valueLabel = useMemo(() => {\n const fromMaps = marsunValueLabel(value, mapsRef.current.labelMap);\n if (fromMaps) return fromMaps;\n return kneValueLabel(marsunToKne(value, { single, ...mapsRef.current }), single);\n }, [value, single]);\n\n useEffect(() => {\n if (!registerFn) return;\n if (!visible) {\n registerFn.unregister(filterKey);\n return;\n }\n if (valueLabel) {\n registerFn.register(filterKey, {\n label: resolvedLabel,\n valueLabel,\n onRemove: () => onChange?.(undefined),\n });\n } else {\n registerFn.unregister(filterKey);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueLabel, filterKey, resolvedLabel, visible]);\n\n if (!visible) return null;\n\n const hasValue = Array.isArray(value) ? value.length > 0 : value != null && value !== '';\n\n const handleDraftChange = (next: KneSelectItem | KneSelectItem[] | null) => {\n mapsRef.current = mergeKneLabelMaps(next, mapsRef.current);\n setDraft(next);\n };\n\n return (\n <FilterPopover\n label={resolvedLabel}\n active={active || hasValue}\n width={panelWidth}\n onOpenChange={(open) => {\n if (open) setDraft(marsunToKne(value, { single, ...mapsRef.current }));\n }}\n onConfirm={() => {\n mapsRef.current = mergeKneLabelMaps(draft, mapsRef.current);\n onChange?.(kneToMarsun(draft, single));\n }}\n onReset={() => {\n setDraft(single ? null : []);\n onChange?.(undefined);\n }}\n >\n <div className={classNames('kne-filter-field-panel', styles['kne-filter-field-panel'])}>\n <KneComponent\n {...(kneRest as KneComponentProps)}\n className={classNames(\n 'kne-filter-field-inner',\n styles['kne-filter-field-inner'],\n kneRest.className as string | undefined,\n )}\n single={single}\n allowClear={false}\n valueType=\"all\"\n value={draft ?? (single ? null : [])}\n onChange={handleDraftChange}\n empty={(kneRest.empty as React.ReactNode | undefined) ?? defaultSuperSelectEmpty()}\n renderItemContent={\n (renderItemContent as ((ctx: unknown) => React.ReactNode) | undefined) ||\n renderSelectListItemContent\n }\n />\n </div>\n </FilterPopover>\n );\n };\n\n KneFilterField.displayName = `KneFilterField(${KneComponent.displayName || KneComponent.name || 'Component'})`;\n return KneFilterField;\n}\n"],"names":["createKneFilterField","KneComponent","defaults","KneFilterField","filterKey","label","value","onChange","single","panelWidth","active","hidden","display","dependsOn","clearOnDepsChange","renderItemContent","kneRest","mapsRef","useRef","draft","setDraft","useState","marsunToKne","onChangeRef","resolvedLabel","useFilterFieldBridge","_a","registerFn","useFilterRegister","visible","resolveFilterVisible","useEffect","valueLabel","useMemo","fromMaps","marsunValueLabel","kneValueLabel","hasValue","handleDraftChange","next","mergeKneLabelMaps","jsx","FilterPopover","open","kneToMarsun","classNames","styles","defaultSuperSelectEmpty","renderSelectListItemContent"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { ComponentType, ReactNode } from 'react';
2
2
  /** 与 @kne/super-select 默认 `selectedAllValue.value` 对齐 */
3
3
  export declare const SUPER_SELECT_ALL_VALUE = "all";
4
+ export { SUPER_SELECT_EMPTY_TEXT, defaultSuperSelectEmpty } from './superSelectEmpty';
4
5
  export type SuperSelectOption = {
5
6
  value: string | number;
6
7
  label: string;
@@ -1,108 +1,117 @@
1
- import { jsx as g } from "react/jsx-runtime";
2
- import F from "@kne/super-select";
1
+ import { jsx as y } from "react/jsx-runtime";
2
+ import U from "@kne/super-select";
3
3
  /* empty css */
4
- import * as I from "@kne/react-form-antd";
5
- import T from "classnames";
6
- import { useRef as _, useMemo as b } from "react";
7
- import { withNormalizedLabelTips as K } from "./normalizeLabelTips.js";
8
- import { marsunToKne as U, mergeKneLabelMaps as j, kneToMarsun as z } from "../Filter/kneValueAdapter.js";
9
- import D from "./SuperSelect.module.scss.js";
10
- import { renderSelectListItemContent as G } from "../ReactFilter/renderSelectListItemContent.js";
11
- const m = "all";
12
- function O(r, t = m) {
4
+ import * as x from "@kne/react-form-antd";
5
+ import z from "classnames";
6
+ import { useRef as K, useMemo as g } from "react";
7
+ import { withNormalizedLabelTips as j } from "./normalizeLabelTips.js";
8
+ import { marsunToKne as D, mergeKneLabelMaps as G, kneToMarsun as O } from "../Filter/kneValueAdapter.js";
9
+ import X from "./SuperSelect.module.scss.js";
10
+ import { renderSelectListItemContent as Y } from "../ReactFilter/renderSelectListItemContent.js";
11
+ import { defaultSuperSelectEmpty as $ } from "./superSelectEmpty.js";
12
+ import { SUPER_SELECT_EMPTY_TEXT as ar } from "./superSelectEmpty.js";
13
+ const p = "all";
14
+ function q(r, t = p) {
13
15
  return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(t) : String(r) === String(t);
14
16
  }
15
- function Z(r, t = m) {
17
+ function nr(r, t = p) {
16
18
  return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(t) : String(r) === String(t);
17
19
  }
18
- const $ = ({
20
+ const B = ({
19
21
  value: r,
20
22
  onChange: t,
21
23
  disabled: a,
22
- options: c = [],
24
+ options: i = [],
23
25
  single: o = !1,
24
- allowSelectedAll: d = !1,
25
- selectedAllValue: n = { value: m, label: "全选" },
26
+ allowSelectedAll: M = !1,
27
+ selectedAllValue: n = { value: p, label: "全选" },
26
28
  placeholder: L,
27
- showSearch: u = !0,
28
- allowClear: w = !0,
29
- className: y,
30
- api: p,
29
+ showSearch: c = !0,
30
+ allowClear: E = !0,
31
+ className: C,
32
+ api: u,
31
33
  getSearchProps: l,
32
- renderItemContent: k,
33
- ...C
34
+ renderItemContent: P,
35
+ getPopupContainer: w,
36
+ empty: T,
37
+ ...S
34
38
  }) => {
35
- const i = _({
39
+ const m = K({
36
40
  labelMap: {},
37
41
  itemMap: {}
38
- }), A = p != null, S = b(() => {
42
+ }), _ = u != null, k = w ?? (() => typeof document < "u" ? document.body : null), A = T ?? $(), f = g(() => {
39
43
  const e = {};
40
- for (const s of c)
44
+ for (const s of i)
41
45
  e[String(s.value)] = s.label;
42
46
  return e[String(n.value)] = n.label, e;
43
- }, [c, n]), N = b(() => {
47
+ }, [i, n]), N = g(() => {
44
48
  const e = {
45
- labelMap: { ...S, ...i.current.labelMap },
46
- itemMap: i.current.itemMap
49
+ labelMap: { ...f, ...m.current.labelMap },
50
+ itemMap: m.current.itemMap
47
51
  };
48
- return O(r, n.value) ? [n] : U(r, { single: o, ...e });
49
- }, [r, o, S, n]), h = (e) => {
50
- i.current = j(e, i.current), t == null || t(z(e, o));
51
- }, E = ({ searchText: e }) => ({
52
+ return q(r, n.value) ? [n] : D(r, { single: o, ...e });
53
+ }, [r, o, f, n]), h = (e) => {
54
+ m.current = G(e, m.current), t == null || t(O(e, o));
55
+ }, I = ({ searchText: e }) => ({
52
56
  keyword: e || "",
53
57
  currentPage: 1
54
58
  });
55
- return /* @__PURE__ */ g(
59
+ return /* @__PURE__ */ y(
56
60
  "div",
57
61
  {
58
- className: T(
62
+ className: z(
59
63
  "marsun-form-super-select",
60
- D["marsun-form-super-select"],
61
- y
64
+ X["marsun-form-super-select"],
65
+ C
62
66
  ),
63
- children: /* @__PURE__ */ g(
64
- F,
67
+ children: /* @__PURE__ */ y(
68
+ U,
65
69
  {
66
- ...C,
70
+ ...S,
67
71
  value: N,
68
72
  onChange: h,
69
- renderItemContent: k || G,
70
- ...A ? {
71
- api: p,
72
- getSearchProps: u ? l || E : l
73
+ renderItemContent: P || Y,
74
+ getPopupContainer: k,
75
+ overlayStyle: { zIndex: 1400, ...S.overlayStyle },
76
+ empty: A,
77
+ ..._ ? {
78
+ api: u,
79
+ getSearchProps: c ? l || I : l
73
80
  } : {
74
- options: c,
75
- getSearchCallback: u ? ({ searchText: e }, s) => {
81
+ options: i,
82
+ getSearchCallback: c ? ({ searchText: e }, s) => {
76
83
  if (!e) return !0;
77
- const f = e.toLowerCase(), P = String(s.label ?? "").toLowerCase(), R = String(s.value ?? "").toLowerCase();
78
- return P.includes(f) || R.includes(f);
84
+ const d = e.toLowerCase(), R = String(s.label ?? "").toLowerCase(), F = String(s.value ?? "").toLowerCase();
85
+ return R.includes(d) || F.includes(d);
79
86
  } : void 0
80
87
  },
81
88
  single: o,
82
- allowSelectedAll: !o && d,
89
+ allowSelectedAll: !o && M,
83
90
  selectedAllValue: n,
84
91
  placeholder: L,
85
92
  isPopup: !0,
86
- allowClear: w && !a,
93
+ allowClear: E && !a,
87
94
  disabled: a
88
95
  }
89
96
  )
90
97
  }
91
98
  );
92
- }, M = (r) => {
93
- const { useDecorator: t } = I.hooks;
99
+ }, b = (r) => {
100
+ const { useDecorator: t } = x.hooks;
94
101
  return t({
95
102
  fieldName: "superSelect",
96
103
  ...r
97
- })($);
104
+ })(B);
98
105
  };
99
- M.displayName = "SuperSelect";
100
- const v = K(
101
- M
106
+ b.displayName = "SuperSelect";
107
+ const or = j(
108
+ b
102
109
  );
103
110
  export {
104
- m as SUPER_SELECT_ALL_VALUE,
105
- v as SuperSelect,
106
- Z as isSuperSelectAllValue
111
+ p as SUPER_SELECT_ALL_VALUE,
112
+ ar as SUPER_SELECT_EMPTY_TEXT,
113
+ or as SuperSelect,
114
+ $ as defaultSuperSelectEmpty,
115
+ nr as isSuperSelectAllValue
107
116
  };
108
117
  //# sourceMappingURL=SuperSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SuperSelect.js","sources":["../../../src/components/Form/SuperSelect.tsx"],"sourcesContent":["/**\n * FormInfo · SuperSelect 字段(对位 kne-union SuperSelectField 精简版)。\n * 经 `hooks.useDecorator` 接入;多选可开 `allowSelectedAll`(值 sentinel 默认 `'all'`)。\n * 对外 form 值为 Marsun 标量/数组(string | string[]),面板内适配 kne `{ label, value }`。\n */\n// @ts-nocheck — @kne/super-select 无完整 TS 类型\nimport KneSuperSelect from '@kne/super-select';\nimport '@kne/super-select/dist/index.css';\nimport * as ReactFormAntd from '@kne/react-form-antd';\nimport classNames from 'classnames';\nimport type { ComponentType, FC, ReactNode } from 'react';\nimport { useMemo, useRef } from 'react';\nimport { withNormalizedLabelTips } from './normalizeLabelTips';\nimport {\n kneToMarsun,\n marsunToKne,\n mergeKneLabelMaps,\n type KneSelectItem,\n type MarsunSelectValue,\n} from '@/components/Filter/kneValueAdapter';\nimport styles from './SuperSelect.module.scss';\nimport { renderSelectListItemContent } from '@/components/ReactFilter/renderSelectListItemContent';\n\n/** 与 @kne/super-select 默认 `selectedAllValue.value` 对齐 */\nexport const SUPER_SELECT_ALL_VALUE = 'all';\n\nexport type SuperSelectOption = {\n value: string | number;\n label: string;\n disabled?: boolean;\n [key: string]: unknown;\n};\n\nexport type SuperSelectProps = {\n name: string;\n label?: ReactNode;\n labelTips?: ReactNode | ((props: SuperSelectProps) => ReactNode);\n rule?: string;\n disabled?: boolean;\n placeholder?: string;\n options?: SuperSelectOption[];\n /** true = 单选;默认多选 */\n single?: boolean;\n /** 多选时显示全选(form 值变为 `[selectedAllValue.value]`,默认 `'all'`) */\n allowSelectedAll?: boolean;\n /** 覆盖默认 `{ value: 'all', label: '全选' }` */\n selectedAllValue?: { value: string | number; label: string };\n showSearch?: boolean;\n allowClear?: boolean;\n className?: string;\n /** 透传 kne SuperSelect */\n [key: string]: unknown;\n};\n\ntype FieldRenderProps = {\n value?: MarsunSelectValue;\n onChange?: (v: MarsunSelectValue) => void;\n disabled?: boolean;\n id?: string;\n};\n\ntype KneHooks = {\n useDecorator: (\n opts: Record<string, unknown>,\n ) => (Comp: ComponentType<FieldRenderProps>) => ReactNode;\n};\n\nfunction isSelectAllMarsun(\n value: MarsunSelectValue,\n allValue: string | number = SUPER_SELECT_ALL_VALUE,\n): boolean {\n if (value == null || value === '') return false;\n if (Array.isArray(value)) {\n return value.length === 1 && String(value[0]) === String(allValue);\n }\n return String(value) === String(allValue);\n}\n\n/** 业务写路径:是否为全选 sentinel */\nexport function isSuperSelectAllValue(\n value: unknown,\n allValue: string | number = SUPER_SELECT_ALL_VALUE,\n): boolean {\n if (value == null || value === '') return false;\n if (Array.isArray(value)) {\n return value.length === 1 && String(value[0]) === String(allValue);\n }\n return String(value) === String(allValue);\n}\n\nconst SuperSelectField: FC<\n FieldRenderProps & {\n options?: SuperSelectOption[];\n single?: boolean;\n allowSelectedAll?: boolean;\n selectedAllValue?: { value: string | number; label: string };\n placeholder?: string;\n showSearch?: boolean;\n allowClear?: boolean;\n className?: string;\n /** 有 api 时走远程/分页加载,不再传 options(否则 kne 会忽略 api) */\n api?: unknown;\n getSearchProps?: (searchProps: { searchText?: string }) => Record<string, unknown>;\n [key: string]: unknown;\n }\n> = ({\n value,\n onChange,\n disabled,\n options = [],\n single = false,\n allowSelectedAll = false,\n selectedAllValue = { value: SUPER_SELECT_ALL_VALUE, label: '全选' },\n placeholder,\n showSearch = true,\n allowClear = true,\n className,\n api,\n getSearchProps: getSearchPropsProp,\n renderItemContent,\n ...kneRest\n}) => {\n const mapsRef = useRef({\n labelMap: {} as Record<string, string>,\n itemMap: {} as Record<string, KneSelectItem>,\n });\n const useApi = api != null;\n\n const labelMapFromOptions = useMemo(() => {\n const map: Record<string, string> = {};\n for (const o of options) {\n map[String(o.value)] = o.label;\n }\n map[String(selectedAllValue.value)] = selectedAllValue.label;\n return map;\n }, [options, selectedAllValue]);\n\n const kneValue = useMemo(() => {\n const maps = {\n labelMap: { ...labelMapFromOptions, ...mapsRef.current.labelMap },\n itemMap: mapsRef.current.itemMap,\n };\n if (isSelectAllMarsun(value, selectedAllValue.value)) {\n return [selectedAllValue as KneSelectItem];\n }\n return marsunToKne(value, { single, ...maps });\n }, [value, single, labelMapFromOptions, selectedAllValue]);\n\n const handleChange = (next: KneSelectItem | KneSelectItem[] | null) => {\n mapsRef.current = mergeKneLabelMaps(next, mapsRef.current);\n onChange?.(kneToMarsun(next, single));\n };\n\n const defaultGetSearchProps = ({ searchText }: { searchText?: string }) => ({\n keyword: searchText || '',\n currentPage: 1,\n });\n\n return (\n <div\n className={classNames(\n 'marsun-form-super-select',\n styles['marsun-form-super-select'],\n className,\n )}\n >\n <KneSuperSelect\n {...kneRest}\n value={kneValue}\n onChange={handleChange}\n renderItemContent={renderItemContent || renderSelectListItemContent}\n {...(useApi\n ? {\n api,\n getSearchProps: showSearch\n ? getSearchPropsProp || defaultGetSearchProps\n : getSearchPropsProp,\n }\n : {\n options,\n getSearchCallback: showSearch\n ? ({ searchText }: { searchText?: string }, item: KneSelectItem) => {\n if (!searchText) return true;\n const kw = searchText.toLowerCase();\n const label = String(item.label ?? '').toLowerCase();\n const val = String(item.value ?? '').toLowerCase();\n return label.includes(kw) || val.includes(kw);\n }\n : undefined,\n })}\n single={single}\n allowSelectedAll={!single && allowSelectedAll}\n selectedAllValue={selectedAllValue}\n placeholder={placeholder}\n isPopup\n allowClear={allowClear && !disabled}\n disabled={disabled}\n />\n </div>\n );\n};\n\nconst SuperSelectInner: FC<SuperSelectProps> = (props) => {\n const { useDecorator } = (ReactFormAntd as unknown as { hooks: KneHooks }).hooks;\n const render = useDecorator({\n fieldName: 'superSelect',\n ...props,\n });\n return render(SuperSelectField);\n};\n\nSuperSelectInner.displayName = 'SuperSelect';\n\nexport const SuperSelect = withNormalizedLabelTips(\n SuperSelectInner as ComponentType<SuperSelectProps>,\n) as ComponentType<SuperSelectProps>;\n\nexport default SuperSelect;\n"],"names":["SUPER_SELECT_ALL_VALUE","isSelectAllMarsun","value","allValue","isSuperSelectAllValue","SuperSelectField","onChange","disabled","options","single","allowSelectedAll","selectedAllValue","placeholder","showSearch","allowClear","className","api","getSearchPropsProp","renderItemContent","kneRest","mapsRef","useRef","useApi","labelMapFromOptions","useMemo","map","o","kneValue","maps","marsunToKne","handleChange","next","mergeKneLabelMaps","kneToMarsun","defaultGetSearchProps","searchText","jsx","classNames","styles","KneSuperSelect","renderSelectListItemContent","item","kw","label","val","SuperSelectInner","props","useDecorator","ReactFormAntd","SuperSelect","withNormalizedLabelTips"],"mappings":"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"}
1
+ {"version":3,"file":"SuperSelect.js","sources":["../../../src/components/Form/SuperSelect.tsx"],"sourcesContent":["/**\n * FormInfo · SuperSelect 字段(对位 kne-union SuperSelectField 精简版)。\n * 经 `hooks.useDecorator` 接入;多选可开 `allowSelectedAll`(值 sentinel 默认 `'all'`)。\n * 对外 form 值为 Marsun 标量/数组(string | string[]),面板内适配 kne `{ label, value }`。\n */\n// @ts-nocheck — @kne/super-select 无完整 TS 类型\nimport KneSuperSelect from '@kne/super-select';\nimport '@kne/super-select/dist/index.css';\nimport * as ReactFormAntd from '@kne/react-form-antd';\nimport classNames from 'classnames';\nimport type { ComponentType, FC, ReactNode } from 'react';\nimport { useMemo, useRef } from 'react';\nimport { withNormalizedLabelTips } from './normalizeLabelTips';\nimport {\n kneToMarsun,\n marsunToKne,\n mergeKneLabelMaps,\n type KneSelectItem,\n type MarsunSelectValue,\n} from '@/components/Filter/kneValueAdapter';\nimport styles from './SuperSelect.module.scss';\nimport { renderSelectListItemContent } from '@/components/ReactFilter/renderSelectListItemContent';\nimport { defaultSuperSelectEmpty } from './superSelectEmpty';\n\n/** 与 @kne/super-select 默认 `selectedAllValue.value` 对齐 */\nexport const SUPER_SELECT_ALL_VALUE = 'all';\nexport { SUPER_SELECT_EMPTY_TEXT, defaultSuperSelectEmpty } from './superSelectEmpty';\n\nexport type SuperSelectOption = {\n value: string | number;\n label: string;\n disabled?: boolean;\n [key: string]: unknown;\n};\n\nexport type SuperSelectProps = {\n name: string;\n label?: ReactNode;\n labelTips?: ReactNode | ((props: SuperSelectProps) => ReactNode);\n rule?: string;\n disabled?: boolean;\n placeholder?: string;\n options?: SuperSelectOption[];\n /** true = 单选;默认多选 */\n single?: boolean;\n /** 多选时显示全选(form 值变为 `[selectedAllValue.value]`,默认 `'all'`) */\n allowSelectedAll?: boolean;\n /** 覆盖默认 `{ value: 'all', label: '全选' }` */\n selectedAllValue?: { value: string | number; label: string };\n showSearch?: boolean;\n allowClear?: boolean;\n className?: string;\n /** 透传 kne SuperSelect */\n [key: string]: unknown;\n};\n\ntype FieldRenderProps = {\n value?: MarsunSelectValue;\n onChange?: (v: MarsunSelectValue) => void;\n disabled?: boolean;\n id?: string;\n};\n\ntype KneHooks = {\n useDecorator: (\n opts: Record<string, unknown>,\n ) => (Comp: ComponentType<FieldRenderProps>) => ReactNode;\n};\n\nfunction isSelectAllMarsun(\n value: MarsunSelectValue,\n allValue: string | number = SUPER_SELECT_ALL_VALUE,\n): boolean {\n if (value == null || value === '') return false;\n if (Array.isArray(value)) {\n return value.length === 1 && String(value[0]) === String(allValue);\n }\n return String(value) === String(allValue);\n}\n\n/** 业务写路径:是否为全选 sentinel */\nexport function isSuperSelectAllValue(\n value: unknown,\n allValue: string | number = SUPER_SELECT_ALL_VALUE,\n): boolean {\n if (value == null || value === '') return false;\n if (Array.isArray(value)) {\n return value.length === 1 && String(value[0]) === String(allValue);\n }\n return String(value) === String(allValue);\n}\n\nconst SuperSelectField: FC<\n FieldRenderProps & {\n options?: SuperSelectOption[];\n single?: boolean;\n allowSelectedAll?: boolean;\n selectedAllValue?: { value: string | number; label: string };\n placeholder?: string;\n showSearch?: boolean;\n allowClear?: boolean;\n className?: string;\n /** 有 api 时走远程/分页加载,不再传 options(否则 kne 会忽略 api) */\n api?: unknown;\n getSearchProps?: (searchProps: { searchText?: string }) => Record<string, unknown>;\n [key: string]: unknown;\n }\n> = ({\n value,\n onChange,\n disabled,\n options = [],\n single = false,\n allowSelectedAll = false,\n selectedAllValue = { value: SUPER_SELECT_ALL_VALUE, label: '全选' },\n placeholder,\n showSearch = true,\n allowClear = true,\n className,\n api,\n getSearchProps: getSearchPropsProp,\n renderItemContent,\n getPopupContainer: getPopupContainerProp,\n empty: emptyProp,\n ...kneRest\n}) => {\n const mapsRef = useRef({\n labelMap: {} as Record<string, string>,\n itemMap: {} as Record<string, KneSelectItem>,\n });\n const useApi = api != null;\n /** Modal 内 kne boundary 会把列表 Empty 挂进弹层底栏;默认挂 body(可覆盖) */\n const getPopupContainer =\n getPopupContainerProp ??\n (() => (typeof document !== 'undefined' ? document.body : (null as unknown as HTMLElement)));\n const empty = emptyProp ?? defaultSuperSelectEmpty();\n\n const labelMapFromOptions = useMemo(() => {\n const map: Record<string, string> = {};\n for (const o of options) {\n map[String(o.value)] = o.label;\n }\n map[String(selectedAllValue.value)] = selectedAllValue.label;\n return map;\n }, [options, selectedAllValue]);\n\n const kneValue = useMemo(() => {\n const maps = {\n labelMap: { ...labelMapFromOptions, ...mapsRef.current.labelMap },\n itemMap: mapsRef.current.itemMap,\n };\n if (isSelectAllMarsun(value, selectedAllValue.value)) {\n return [selectedAllValue as KneSelectItem];\n }\n return marsunToKne(value, { single, ...maps });\n }, [value, single, labelMapFromOptions, selectedAllValue]);\n\n const handleChange = (next: KneSelectItem | KneSelectItem[] | null) => {\n mapsRef.current = mergeKneLabelMaps(next, mapsRef.current);\n onChange?.(kneToMarsun(next, single));\n };\n\n const defaultGetSearchProps = ({ searchText }: { searchText?: string }) => ({\n keyword: searchText || '',\n currentPage: 1,\n });\n\n return (\n <div\n className={classNames(\n 'marsun-form-super-select',\n styles['marsun-form-super-select'],\n className,\n )}\n >\n <KneSuperSelect\n {...kneRest}\n value={kneValue}\n onChange={handleChange}\n renderItemContent={renderItemContent || renderSelectListItemContent}\n getPopupContainer={getPopupContainer}\n overlayStyle={{ zIndex: 1400, ...(kneRest.overlayStyle as object | undefined) }}\n empty={empty}\n {...(useApi\n ? {\n api,\n getSearchProps: showSearch\n ? getSearchPropsProp || defaultGetSearchProps\n : getSearchPropsProp,\n }\n : {\n options,\n getSearchCallback: showSearch\n ? ({ searchText }: { searchText?: string }, item: KneSelectItem) => {\n if (!searchText) return true;\n const kw = searchText.toLowerCase();\n const label = String(item.label ?? '').toLowerCase();\n const val = String(item.value ?? '').toLowerCase();\n return label.includes(kw) || val.includes(kw);\n }\n : undefined,\n })}\n single={single}\n allowSelectedAll={!single && allowSelectedAll}\n selectedAllValue={selectedAllValue}\n placeholder={placeholder}\n isPopup\n allowClear={allowClear && !disabled}\n disabled={disabled}\n />\n </div>\n );\n};\n\nconst SuperSelectInner: FC<SuperSelectProps> = (props) => {\n const { useDecorator } = (ReactFormAntd as unknown as { hooks: KneHooks }).hooks;\n const render = useDecorator({\n fieldName: 'superSelect',\n ...props,\n });\n return render(SuperSelectField);\n};\n\nSuperSelectInner.displayName = 'SuperSelect';\n\nexport const SuperSelect = withNormalizedLabelTips(\n SuperSelectInner as ComponentType<SuperSelectProps>,\n) as ComponentType<SuperSelectProps>;\n\nexport default SuperSelect;\n"],"names":["SUPER_SELECT_ALL_VALUE","isSelectAllMarsun","value","allValue","isSuperSelectAllValue","SuperSelectField","onChange","disabled","options","single","allowSelectedAll","selectedAllValue","placeholder","showSearch","allowClear","className","api","getSearchPropsProp","renderItemContent","getPopupContainerProp","emptyProp","kneRest","mapsRef","useRef","useApi","getPopupContainer","empty","defaultSuperSelectEmpty","labelMapFromOptions","useMemo","map","o","kneValue","maps","marsunToKne","handleChange","next","mergeKneLabelMaps","kneToMarsun","defaultGetSearchProps","searchText","jsx","classNames","styles","KneSuperSelect","renderSelectListItemContent","item","kw","label","val","SuperSelectInner","props","useDecorator","ReactFormAntd","SuperSelect","withNormalizedLabelTips"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * kne SuperSelect 远程分页下拉(对齐 EAM CycleForm / materialFilterRemoteSelect)。
3
+ * App 注入 loadPage;core 禁直连业务 API。
4
+ */
5
+ export declare const PAGED_SUPER_SELECT_PAGE_SIZE = 50;
6
+ export type PagedSuperSelectOption = {
7
+ label: string;
8
+ value: string;
9
+ };
10
+ export type PagedSuperSelectQuery = {
11
+ keyword?: string;
12
+ currentPage: number;
13
+ pageSize: number;
14
+ };
15
+ export type PagedSuperSelectPage = {
16
+ pageData: PagedSuperSelectOption[];
17
+ totalCount: number;
18
+ };
19
+ export type CreatePagedSuperSelectApiOptions = {
20
+ pageSize?: number;
21
+ loadPage: (query: PagedSuperSelectQuery) => Promise<PagedSuperSelectPage>;
22
+ /** 失败时回调(如 message.error);未传则静默空页 */
23
+ onError?: (error: unknown) => void;
24
+ };
25
+ type KneLoaderData = {
26
+ currentPage?: number;
27
+ perPage?: number;
28
+ keyword?: string;
29
+ };
30
+ /** kne SuperSelect.api:data + loader → { pageData, totalCount } */
31
+ export declare function createPagedSuperSelectApi(options: CreatePagedSuperSelectApiOptions): {
32
+ data: {
33
+ currentPage: number;
34
+ perPage: number;
35
+ keyword: string;
36
+ };
37
+ loader: ({ data }: {
38
+ data?: KneLoaderData;
39
+ }) => Promise<PagedSuperSelectPage>;
40
+ };
41
+ /** kne SuperSelect.getSearchProps:搜索重置到第 1 页 */
42
+ export declare function pagedSuperSelectGetSearchProps(pageSize?: number): (args: {
43
+ searchText?: string;
44
+ }) => {
45
+ keyword: string;
46
+ currentPage: number;
47
+ perPage: number;
48
+ };
49
+ /**
50
+ * kne FetchScrollLoader:`open:false` = 滚动加载(非翻页器)。
51
+ * 与 EAM machineFilterPagination / energyMaterialFilterPagination 同口径。
52
+ */
53
+ export declare function pagedSuperSelectPagination(pageSize?: number): {
54
+ open: false;
55
+ paramsType: 'data';
56
+ current: 'currentPage';
57
+ pageSizeName: 'perPage';
58
+ pageSize: number;
59
+ };
60
+ export {};
@@ -0,0 +1,46 @@
1
+ const c = 50;
2
+ function g(e) {
3
+ const E = e.pageSize ?? 50;
4
+ return {
5
+ data: {
6
+ currentPage: 1,
7
+ perPage: E,
8
+ keyword: ""
9
+ },
10
+ loader: async ({ data: r }) => {
11
+ var P;
12
+ try {
13
+ return await e.loadPage({
14
+ keyword: r == null ? void 0 : r.keyword,
15
+ currentPage: (r == null ? void 0 : r.currentPage) ?? 1,
16
+ pageSize: (r == null ? void 0 : r.perPage) ?? E
17
+ });
18
+ } catch (S) {
19
+ return (P = e.onError) == null || P.call(e, S), { pageData: [], totalCount: 0 };
20
+ }
21
+ }
22
+ };
23
+ }
24
+ function n(e = 50) {
25
+ return ({ searchText: E }) => ({
26
+ keyword: E || "",
27
+ currentPage: 1,
28
+ perPage: e
29
+ });
30
+ }
31
+ function u(e = 50) {
32
+ return {
33
+ open: !1,
34
+ paramsType: "data",
35
+ current: "currentPage",
36
+ pageSizeName: "perPage",
37
+ pageSize: e
38
+ };
39
+ }
40
+ export {
41
+ c as PAGED_SUPER_SELECT_PAGE_SIZE,
42
+ g as createPagedSuperSelectApi,
43
+ n as pagedSuperSelectGetSearchProps,
44
+ u as pagedSuperSelectPagination
45
+ };
46
+ //# sourceMappingURL=createPagedSuperSelectApi.js.map