@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.
- package/dist/components/Audit/AuditLogList.d.ts +4 -0
- package/dist/components/Audit/AuditLogList.js +168 -166
- package/dist/components/Audit/AuditLogList.js.map +1 -1
- package/dist/components/Audit/AuditStepPerfChart.d.ts +10 -0
- package/dist/components/Audit/AuditStepPerfChart.js +51 -0
- package/dist/components/Audit/AuditStepPerfChart.js.map +1 -0
- package/dist/components/Audit/AuditWaterfall.d.ts +5 -1
- package/dist/components/Audit/AuditWaterfall.js +50 -34
- package/dist/components/Audit/AuditWaterfall.js.map +1 -1
- package/dist/components/Audit/Chart/createLazyPlot.d.ts +4 -0
- package/dist/components/Audit/Chart/createLazyPlot.js +12 -11
- package/dist/components/Audit/Chart/createLazyPlot.js.map +1 -1
- package/dist/components/Audit/detailKpi.d.ts +8 -3
- package/dist/components/Audit/detailKpi.js +28 -20
- package/dist/components/Audit/detailKpi.js.map +1 -1
- package/dist/components/Audit/index.d.ts +4 -2
- package/dist/components/Audit/style.module.scss.js +48 -28
- package/dist/components/Audit/style.module.scss.js.map +1 -1
- package/dist/components/Filter/createKneFilterField.js +55 -53
- package/dist/components/Filter/createKneFilterField.js.map +1 -1
- package/dist/components/Form/SuperSelect.d.ts +1 -0
- package/dist/components/Form/SuperSelect.js +67 -58
- package/dist/components/Form/SuperSelect.js.map +1 -1
- package/dist/components/Form/createPagedSuperSelectApi.d.ts +60 -0
- package/dist/components/Form/createPagedSuperSelectApi.js +46 -0
- package/dist/components/Form/createPagedSuperSelectApi.js.map +1 -0
- package/dist/components/Form/index.d.ts +3 -0
- package/dist/components/Form/superSelectEmpty.d.ts +5 -0
- package/dist/components/Form/superSelectEmpty.js +11 -0
- package/dist/components/Form/superSelectEmpty.js.map +1 -0
- package/dist/components/FormInfo/fields.d.ts +2 -0
- package/dist/components/FormInfo/fields.js.map +1 -1
- package/dist/components/FormInfo/index.d.ts +2 -2
- package/dist/components/ReactFilter/fields/index.js +35 -27
- package/dist/components/ReactFilter/fields/index.js.map +1 -1
- package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.d.ts +20 -0
- package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.js +82 -0
- package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.js.map +1 -0
- package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.module.scss.js +7 -0
- package/dist/components/Tools/ActionTracking/Cancel/CancelExecutionModal.module.scss.js.map +1 -0
- package/dist/components/Tools/ActionTracking/Cancel/index.d.ts +3 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.d.ts +25 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.js +257 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.module.scss.js +10 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionForm.module.scss.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.d.ts +47 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.js +148 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.module.scss.js +7 -0
- package/dist/components/Tools/ActionTracking/CreateAction/CreateActionModal.module.scss.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.d.ts +18 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.js +73 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.module.scss.js +5 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascader.module.scss.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.d.ts +19 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.js +62 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.module.scss.js +8 -0
- package/dist/components/Tools/ActionTracking/CreateAction/PersonRoleCascaderField.module.scss.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/SetFormFields.d.ts +4 -0
- package/dist/components/Tools/ActionTracking/CreateAction/SetFormFields.js +14 -0
- package/dist/components/Tools/ActionTracking/CreateAction/SetFormFields.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/index.d.ts +12 -0
- package/dist/components/Tools/ActionTracking/CreateAction/personCascadePath.d.ts +5 -0
- package/dist/components/Tools/ActionTracking/CreateAction/personCascadePath.js +30 -0
- package/dist/components/Tools/ActionTracking/CreateAction/personCascadePath.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/submitHelpers.d.ts +8 -0
- package/dist/components/Tools/ActionTracking/CreateAction/submitHelpers.js +35 -0
- package/dist/components/Tools/ActionTracking/CreateAction/submitHelpers.js.map +1 -0
- package/dist/components/Tools/ActionTracking/CreateAction/types.d.ts +108 -0
- package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.d.ts +27 -0
- package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.js +107 -0
- package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.js.map +1 -0
- package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.module.scss.js +11 -0
- package/dist/components/Tools/ActionTracking/Follow/ActionFollowModal.module.scss.js.map +1 -0
- package/dist/components/Tools/ActionTracking/Follow/index.d.ts +3 -0
- package/dist/components/Tools/ActionTracking/List/ActionFilterBar.d.ts +23 -0
- package/dist/components/Tools/ActionTracking/List/ActionFilterBar.js +31 -0
- package/dist/components/Tools/ActionTracking/List/ActionFilterBar.js.map +1 -0
- package/dist/components/Tools/ActionTracking/List/ActionFilterBar.module.scss.js +8 -0
- package/dist/components/Tools/ActionTracking/List/ActionFilterBar.module.scss.js.map +1 -0
- package/dist/components/Tools/ActionTracking/List/ActionListTable.d.ts +29 -0
- package/dist/components/Tools/ActionTracking/List/ActionListTable.js +76 -0
- package/dist/components/Tools/ActionTracking/List/ActionListTable.js.map +1 -0
- package/dist/components/Tools/ActionTracking/List/ActionListTable.module.scss.js +8 -0
- package/dist/components/Tools/ActionTracking/List/ActionListTable.module.scss.js.map +1 -0
- package/dist/components/Tools/ActionTracking/List/filterDefaults.d.ts +15 -0
- package/dist/components/Tools/ActionTracking/List/filterDefaults.js +27 -0
- package/dist/components/Tools/ActionTracking/List/filterDefaults.js.map +1 -0
- package/dist/components/Tools/ActionTracking/List/index.d.ts +6 -0
- package/dist/components/Tools/ActionTracking/List/listTypes.d.ts +49 -0
- package/dist/components/Tools/ActionTracking/{ActionTrackingShell.d.ts → Shell/ActionTrackingShell.d.ts} +1 -1
- package/dist/components/Tools/ActionTracking/{ActionTrackingShell.js → Shell/ActionTrackingShell.js} +1 -1
- package/dist/components/Tools/ActionTracking/Shell/ActionTrackingShell.js.map +1 -0
- package/dist/components/Tools/ActionTracking/Shell/index.d.ts +3 -0
- package/dist/components/Tools/ActionTracking/index.d.ts +11 -2
- package/dist/components/Tools/ActionTracking/utils/index.d.ts +1 -0
- package/dist/components/Tools/ActionTracking/utils/sanitizeActionHtml.d.ts +2 -0
- package/dist/components/Tools/index.d.ts +2 -0
- package/dist/form-info.d.ts +3 -0
- package/dist/form-info.js +80 -72
- package/dist/form-info.js.map +1 -1
- package/dist/index.js +867 -820
- package/dist/index.js.map +1 -1
- package/dist/marsun-components-core.css +2 -2
- package/dist/styles/global.css +2 -2
- package/package.json +1 -1
- package/dist/components/Tools/ActionTracking/ActionTrackingShell.js.map +0 -1
- /package/dist/components/Tools/ActionTracking/{style.module.scss.js → Shell/style.module.scss.js} +0 -0
- /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 = "
|
|
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:
|
|
4
|
-
statsBar:
|
|
3
|
+
filter: i,
|
|
4
|
+
statsBar: n,
|
|
5
5
|
statsBarCards: _,
|
|
6
|
-
detail:
|
|
7
|
-
actionCode:
|
|
8
|
-
stepBody:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
|
2
|
-
import { useRef as N, useState as
|
|
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
|
|
7
|
-
import
|
|
8
|
-
import
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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:
|
|
18
|
-
active:
|
|
19
|
-
hidden:
|
|
18
|
+
panelWidth: T = (a == null ? void 0 : a.panelWidth) ?? 420,
|
|
19
|
+
active: v,
|
|
20
|
+
hidden: w,
|
|
20
21
|
display: A,
|
|
21
|
-
dependsOn:
|
|
22
|
-
clearOnDepsChange:
|
|
23
|
-
renderItemContent:
|
|
24
|
-
...
|
|
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,
|
|
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:
|
|
34
|
-
filterKey:
|
|
34
|
+
const { resolvedLabel: d } = $({
|
|
35
|
+
filterKey: m,
|
|
35
36
|
value: r,
|
|
36
|
-
label:
|
|
37
|
-
dependsOn:
|
|
38
|
-
clearOnDepsChange:
|
|
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(),
|
|
44
|
-
|
|
45
|
-
|
|
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
|
|
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 (
|
|
52
|
+
if (y(() => {
|
|
52
53
|
if (c) {
|
|
53
|
-
if (!
|
|
54
|
-
c.unregister(
|
|
54
|
+
if (!F) {
|
|
55
|
+
c.unregister(m);
|
|
55
56
|
return;
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
-
label:
|
|
59
|
-
valueLabel:
|
|
58
|
+
b ? c.register(m, {
|
|
59
|
+
label: d,
|
|
60
|
+
valueLabel: b,
|
|
60
61
|
onRemove: () => e == null ? void 0 : e(void 0)
|
|
61
|
-
}) : c.unregister(
|
|
62
|
+
}) : c.unregister(m);
|
|
62
63
|
}
|
|
63
|
-
}, [
|
|
64
|
-
const
|
|
65
|
-
l.current =
|
|
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__ */
|
|
68
|
+
return /* @__PURE__ */ M(
|
|
68
69
|
P,
|
|
69
70
|
{
|
|
70
|
-
label:
|
|
71
|
-
active:
|
|
72
|
-
width:
|
|
71
|
+
label: d,
|
|
72
|
+
active: v || j,
|
|
73
|
+
width: T,
|
|
73
74
|
onOpenChange: (i) => {
|
|
74
|
-
i &&
|
|
75
|
+
i && s(n(r, { single: t, ...l.current }));
|
|
75
76
|
},
|
|
76
77
|
onConfirm: () => {
|
|
77
|
-
l.current =
|
|
78
|
+
l.current = k(u, l.current), e == null || e(H(u, t));
|
|
78
79
|
},
|
|
79
80
|
onReset: () => {
|
|
80
|
-
|
|
81
|
+
s(t ? null : []), e == null || e(void 0);
|
|
81
82
|
},
|
|
82
|
-
children: /* @__PURE__ */
|
|
83
|
-
|
|
83
|
+
children: /* @__PURE__ */ M("div", { className: V("kne-filter-field-panel", S["kne-filter-field-panel"]), children: /* @__PURE__ */ M(
|
|
84
|
+
p,
|
|
84
85
|
{
|
|
85
|
-
...
|
|
86
|
-
className:
|
|
86
|
+
...f,
|
|
87
|
+
className: V(
|
|
87
88
|
"kne-filter-field-inner",
|
|
88
|
-
|
|
89
|
-
|
|
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:
|
|
96
|
-
|
|
96
|
+
onChange: x,
|
|
97
|
+
empty: f.empty ?? Q(),
|
|
98
|
+
renderItemContent: R || J
|
|
97
99
|
}
|
|
98
100
|
) })
|
|
99
101
|
}
|
|
100
102
|
);
|
|
101
103
|
};
|
|
102
|
-
return
|
|
104
|
+
return L.displayName = `KneFilterField(${p.displayName || p.name || "Component"})`, L;
|
|
103
105
|
}
|
|
104
106
|
export {
|
|
105
|
-
|
|
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":"
|
|
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
|
|
2
|
-
import
|
|
1
|
+
import { jsx as y } from "react/jsx-runtime";
|
|
2
|
+
import U from "@kne/super-select";
|
|
3
3
|
/* empty css */
|
|
4
|
-
import * as
|
|
5
|
-
import
|
|
6
|
-
import { useRef as
|
|
7
|
-
import { withNormalizedLabelTips as
|
|
8
|
-
import { marsunToKne as
|
|
9
|
-
import
|
|
10
|
-
import { renderSelectListItemContent as
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
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:
|
|
24
|
+
options: i = [],
|
|
23
25
|
single: o = !1,
|
|
24
|
-
allowSelectedAll:
|
|
25
|
-
selectedAllValue: n = { value:
|
|
26
|
+
allowSelectedAll: M = !1,
|
|
27
|
+
selectedAllValue: n = { value: p, label: "全选" },
|
|
26
28
|
placeholder: L,
|
|
27
|
-
showSearch:
|
|
28
|
-
allowClear:
|
|
29
|
-
className:
|
|
30
|
-
api:
|
|
29
|
+
showSearch: c = !0,
|
|
30
|
+
allowClear: E = !0,
|
|
31
|
+
className: C,
|
|
32
|
+
api: u,
|
|
31
33
|
getSearchProps: l,
|
|
32
|
-
renderItemContent:
|
|
33
|
-
|
|
34
|
+
renderItemContent: P,
|
|
35
|
+
getPopupContainer: w,
|
|
36
|
+
empty: T,
|
|
37
|
+
...S
|
|
34
38
|
}) => {
|
|
35
|
-
const
|
|
39
|
+
const m = K({
|
|
36
40
|
labelMap: {},
|
|
37
41
|
itemMap: {}
|
|
38
|
-
}),
|
|
42
|
+
}), _ = u != null, k = w ?? (() => typeof document < "u" ? document.body : null), A = T ?? $(), f = g(() => {
|
|
39
43
|
const e = {};
|
|
40
|
-
for (const s of
|
|
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
|
-
}, [
|
|
47
|
+
}, [i, n]), N = g(() => {
|
|
44
48
|
const e = {
|
|
45
|
-
labelMap: { ...
|
|
46
|
-
itemMap:
|
|
49
|
+
labelMap: { ...f, ...m.current.labelMap },
|
|
50
|
+
itemMap: m.current.itemMap
|
|
47
51
|
};
|
|
48
|
-
return
|
|
49
|
-
}, [r, o,
|
|
50
|
-
|
|
51
|
-
},
|
|
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__ */
|
|
59
|
+
return /* @__PURE__ */ y(
|
|
56
60
|
"div",
|
|
57
61
|
{
|
|
58
|
-
className:
|
|
62
|
+
className: z(
|
|
59
63
|
"marsun-form-super-select",
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
X["marsun-form-super-select"],
|
|
65
|
+
C
|
|
62
66
|
),
|
|
63
|
-
children: /* @__PURE__ */
|
|
64
|
-
|
|
67
|
+
children: /* @__PURE__ */ y(
|
|
68
|
+
U,
|
|
65
69
|
{
|
|
66
|
-
...
|
|
70
|
+
...S,
|
|
67
71
|
value: N,
|
|
68
72
|
onChange: h,
|
|
69
|
-
renderItemContent:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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:
|
|
75
|
-
getSearchCallback:
|
|
81
|
+
options: i,
|
|
82
|
+
getSearchCallback: c ? ({ searchText: e }, s) => {
|
|
76
83
|
if (!e) return !0;
|
|
77
|
-
const
|
|
78
|
-
return
|
|
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 &&
|
|
89
|
+
allowSelectedAll: !o && M,
|
|
83
90
|
selectedAllValue: n,
|
|
84
91
|
placeholder: L,
|
|
85
92
|
isPopup: !0,
|
|
86
|
-
allowClear:
|
|
93
|
+
allowClear: E && !a,
|
|
87
94
|
disabled: a
|
|
88
95
|
}
|
|
89
96
|
)
|
|
90
97
|
}
|
|
91
98
|
);
|
|
92
|
-
},
|
|
93
|
-
const { useDecorator: t } =
|
|
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
|
-
|
|
100
|
-
const
|
|
101
|
-
|
|
106
|
+
b.displayName = "SuperSelect";
|
|
107
|
+
const or = j(
|
|
108
|
+
b
|
|
102
109
|
);
|
|
103
110
|
export {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|