@hkyhy/marsun-components-core 0.1.102 → 0.1.113
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/Filter/createKneFilterField.js +42 -39
- package/dist/components/Filter/createKneFilterField.js.map +1 -1
- package/dist/components/Form/SuperSelect.js +48 -45
- package/dist/components/Form/SuperSelect.js.map +1 -1
- package/dist/components/ReactFilter/fields/index.js +33 -26
- package/dist/components/ReactFilter/fields/index.js.map +1 -1
- package/dist/components/ReactFilter/renderSelectListItemContent.d.ts +8 -0
- package/dist/components/ReactFilter/renderSelectListItemContent.js +12 -0
- package/dist/components/ReactFilter/renderSelectListItemContent.js.map +1 -0
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/MessageTemplateAdmin.d.ts +1 -1
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/MessageTemplateAdmin.js +158 -137
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/MessageTemplateAdmin.js.map +1 -1
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/Modal/TemplateFormModal.js +218 -126
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/Modal/TemplateFormModal.js.map +1 -1
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/PushRulesPanel/index.d.ts +8 -1
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/PushRulesPanel/index.js +310 -170
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/PushRulesPanel/index.js.map +1 -1
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/VariablesPanel/index.js +87 -76
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/VariablesPanel/index.js.map +1 -1
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/audienceSlots.d.ts +14 -0
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/audienceSlots.js +31 -0
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/audienceSlots.js.map +1 -0
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/index.d.ts +3 -1
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/style.module.scss.js +18 -6
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/style.module.scss.js.map +1 -1
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/types.d.ts +27 -0
- package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/types.js.map +1 -1
- package/dist/components/Tools/MessageCenter/index.d.ts +3 -1
- package/dist/components/Tools/MessageCenter/utils/audienceUserSelectOptions.d.ts +16 -0
- package/dist/components/Tools/MessageCenter/utils/audienceUserSelectOptions.js +33 -0
- package/dist/components/Tools/MessageCenter/utils/audienceUserSelectOptions.js.map +1 -0
- package/dist/components/Tools/MessageCenter/utils/templateCode.js +11 -17
- package/dist/components/Tools/MessageCenter/utils/templateCode.js.map +1 -1
- package/dist/components/Tools/index.d.ts +1 -1
- package/dist/marsun-components-core.css +1 -1
- package/dist/styles/global.css +1 -1
- package/package.json +8 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { jsx as b } from "react/jsx-runtime";
|
|
2
|
-
import { useRef as
|
|
3
|
-
import
|
|
2
|
+
import { useRef as N, useState as E, useEffect as k, useMemo as O } from "react";
|
|
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
|
|
6
|
+
import { marsunToKne as n, marsunValueLabel as z, kneValueLabel as G, mergeKneLabelMaps as V, kneToMarsun as H } from "./kneValueAdapter.js";
|
|
7
7
|
import D from "./createKneFilterField.module.scss.js";
|
|
8
8
|
import R from "classnames";
|
|
9
|
-
|
|
9
|
+
import { renderSelectListItemContent as J } from "../ReactFilter/renderSelectListItemContent.js";
|
|
10
|
+
function g(a, f) {
|
|
10
11
|
const M = ({
|
|
11
12
|
filterKey: s,
|
|
12
13
|
label: T,
|
|
@@ -17,88 +18,90 @@ function K(u, f) {
|
|
|
17
18
|
active: w,
|
|
18
19
|
hidden: y,
|
|
19
20
|
display: A,
|
|
20
|
-
dependsOn:
|
|
21
|
-
clearOnDepsChange:
|
|
22
|
-
|
|
21
|
+
dependsOn: I,
|
|
22
|
+
clearOnDepsChange: S = !0,
|
|
23
|
+
renderItemContent: j,
|
|
24
|
+
...L
|
|
23
25
|
}) => {
|
|
24
|
-
const l =
|
|
26
|
+
const l = N({
|
|
25
27
|
labelMap: {},
|
|
26
28
|
itemMap: {}
|
|
27
|
-
}), [
|
|
28
|
-
() =>
|
|
29
|
-
),
|
|
30
|
-
|
|
29
|
+
}), [u, m] = E(
|
|
30
|
+
() => n(r, { single: t, ...l.current })
|
|
31
|
+
), o = N(e);
|
|
32
|
+
o.current = e;
|
|
31
33
|
const { resolvedLabel: p } = $({
|
|
32
34
|
filterKey: s,
|
|
33
35
|
value: r,
|
|
34
36
|
label: T,
|
|
35
|
-
dependsOn:
|
|
36
|
-
clearOnDepsChange:
|
|
37
|
+
dependsOn: I,
|
|
38
|
+
clearOnDepsChange: S,
|
|
37
39
|
onDepsClear: () => {
|
|
38
40
|
var i;
|
|
39
|
-
return (i =
|
|
41
|
+
return (i = o.current) == null ? void 0 : i.call(o, void 0);
|
|
40
42
|
}
|
|
41
|
-
}),
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
}), c = q(), d = W({ display: A, hidden: y });
|
|
44
|
+
k(() => {
|
|
45
|
+
m(n(r, { single: t, ...l.current }));
|
|
44
46
|
}, [r, t]);
|
|
45
|
-
const F =
|
|
47
|
+
const F = O(() => {
|
|
46
48
|
const i = z(r, l.current.labelMap);
|
|
47
|
-
return i || G(
|
|
49
|
+
return i || G(n(r, { single: t, ...l.current }), t);
|
|
48
50
|
}, [r, t]);
|
|
49
|
-
if (
|
|
50
|
-
if (
|
|
51
|
+
if (k(() => {
|
|
52
|
+
if (c) {
|
|
51
53
|
if (!d) {
|
|
52
|
-
|
|
54
|
+
c.unregister(s);
|
|
53
55
|
return;
|
|
54
56
|
}
|
|
55
|
-
F ?
|
|
57
|
+
F ? c.register(s, {
|
|
56
58
|
label: p,
|
|
57
59
|
valueLabel: F,
|
|
58
60
|
onRemove: () => e == null ? void 0 : e(void 0)
|
|
59
|
-
}) :
|
|
61
|
+
}) : c.unregister(s);
|
|
60
62
|
}
|
|
61
63
|
}, [F, s, p, d]), !d) return null;
|
|
62
|
-
const
|
|
63
|
-
l.current = V(i, l.current),
|
|
64
|
+
const x = Array.isArray(r) ? r.length > 0 : r != null && r !== "", B = (i) => {
|
|
65
|
+
l.current = V(i, l.current), m(i);
|
|
64
66
|
};
|
|
65
67
|
return /* @__PURE__ */ b(
|
|
66
|
-
|
|
68
|
+
P,
|
|
67
69
|
{
|
|
68
70
|
label: p,
|
|
69
|
-
active: w ||
|
|
71
|
+
active: w || x,
|
|
70
72
|
width: v,
|
|
71
73
|
onOpenChange: (i) => {
|
|
72
|
-
i &&
|
|
74
|
+
i && m(n(r, { single: t, ...l.current }));
|
|
73
75
|
},
|
|
74
76
|
onConfirm: () => {
|
|
75
|
-
l.current = V(
|
|
77
|
+
l.current = V(u, l.current), e == null || e(H(u, t));
|
|
76
78
|
},
|
|
77
79
|
onReset: () => {
|
|
78
|
-
|
|
80
|
+
m(t ? null : []), e == null || e(void 0);
|
|
79
81
|
},
|
|
80
82
|
children: /* @__PURE__ */ b("div", { className: R("kne-filter-field-panel", D["kne-filter-field-panel"]), children: /* @__PURE__ */ b(
|
|
81
|
-
|
|
83
|
+
a,
|
|
82
84
|
{
|
|
83
|
-
...
|
|
85
|
+
...L,
|
|
84
86
|
className: R(
|
|
85
87
|
"kne-filter-field-inner",
|
|
86
88
|
D["kne-filter-field-inner"],
|
|
87
|
-
|
|
89
|
+
L.className
|
|
88
90
|
),
|
|
89
91
|
single: t,
|
|
90
92
|
allowClear: !1,
|
|
91
93
|
valueType: "all",
|
|
92
|
-
value:
|
|
93
|
-
onChange:
|
|
94
|
+
value: u ?? (t ? null : []),
|
|
95
|
+
onChange: B,
|
|
96
|
+
renderItemContent: j || J
|
|
94
97
|
}
|
|
95
98
|
) })
|
|
96
99
|
}
|
|
97
100
|
);
|
|
98
101
|
};
|
|
99
|
-
return M.displayName = `KneFilterField(${
|
|
102
|
+
return M.displayName = `KneFilterField(${a.displayName || a.name || "Component"})`, M;
|
|
100
103
|
}
|
|
101
104
|
export {
|
|
102
|
-
|
|
105
|
+
g as createKneFilterField
|
|
103
106
|
};
|
|
104
107
|
//# 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';\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 ...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 />\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","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"],"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';\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,53 +1,55 @@
|
|
|
1
1
|
import { jsx as g } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
2
|
+
import F from "@kne/super-select";
|
|
3
3
|
/* empty css */
|
|
4
|
-
import * as
|
|
4
|
+
import * as I from "@kne/react-form-antd";
|
|
5
5
|
import T from "classnames";
|
|
6
6
|
import { useRef as _, useMemo as b } from "react";
|
|
7
7
|
import { withNormalizedLabelTips as K } from "./normalizeLabelTips.js";
|
|
8
8
|
import { marsunToKne as U, mergeKneLabelMaps as j, kneToMarsun as z } from "../Filter/kneValueAdapter.js";
|
|
9
9
|
import D from "./SuperSelect.module.scss.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
import { renderSelectListItemContent as G } from "../ReactFilter/renderSelectListItemContent.js";
|
|
11
|
+
const m = "all";
|
|
12
|
+
function O(r, t = m) {
|
|
13
|
+
return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(t) : String(r) === String(t);
|
|
13
14
|
}
|
|
14
|
-
function
|
|
15
|
-
return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(
|
|
15
|
+
function Z(r, t = m) {
|
|
16
|
+
return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(t) : String(r) === String(t);
|
|
16
17
|
}
|
|
17
|
-
const
|
|
18
|
+
const $ = ({
|
|
18
19
|
value: r,
|
|
19
|
-
onChange:
|
|
20
|
-
disabled:
|
|
20
|
+
onChange: t,
|
|
21
|
+
disabled: a,
|
|
21
22
|
options: c = [],
|
|
22
23
|
single: o = !1,
|
|
23
|
-
allowSelectedAll:
|
|
24
|
-
selectedAllValue: n = { value:
|
|
25
|
-
placeholder:
|
|
26
|
-
showSearch:
|
|
24
|
+
allowSelectedAll: d = !1,
|
|
25
|
+
selectedAllValue: n = { value: m, label: "全选" },
|
|
26
|
+
placeholder: L,
|
|
27
|
+
showSearch: u = !0,
|
|
27
28
|
allowClear: w = !0,
|
|
28
29
|
className: y,
|
|
29
30
|
api: p,
|
|
30
31
|
getSearchProps: l,
|
|
31
|
-
|
|
32
|
+
renderItemContent: k,
|
|
33
|
+
...C
|
|
32
34
|
}) => {
|
|
33
|
-
const
|
|
35
|
+
const i = _({
|
|
34
36
|
labelMap: {},
|
|
35
37
|
itemMap: {}
|
|
36
38
|
}), A = p != null, S = b(() => {
|
|
37
|
-
const
|
|
39
|
+
const e = {};
|
|
38
40
|
for (const s of c)
|
|
39
|
-
|
|
40
|
-
return
|
|
41
|
+
e[String(s.value)] = s.label;
|
|
42
|
+
return e[String(n.value)] = n.label, e;
|
|
41
43
|
}, [c, n]), N = b(() => {
|
|
42
|
-
const
|
|
43
|
-
labelMap: { ...S, ...
|
|
44
|
-
itemMap:
|
|
44
|
+
const e = {
|
|
45
|
+
labelMap: { ...S, ...i.current.labelMap },
|
|
46
|
+
itemMap: i.current.itemMap
|
|
45
47
|
};
|
|
46
|
-
return
|
|
47
|
-
}, [r, o, S, n]), h = (
|
|
48
|
-
|
|
49
|
-
},
|
|
50
|
-
keyword:
|
|
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
|
+
keyword: e || "",
|
|
51
53
|
currentPage: 1
|
|
52
54
|
});
|
|
53
55
|
return /* @__PURE__ */ g(
|
|
@@ -59,47 +61,48 @@ const I = ({
|
|
|
59
61
|
y
|
|
60
62
|
),
|
|
61
63
|
children: /* @__PURE__ */ g(
|
|
62
|
-
|
|
64
|
+
F,
|
|
63
65
|
{
|
|
64
|
-
...
|
|
66
|
+
...C,
|
|
65
67
|
value: N,
|
|
66
68
|
onChange: h,
|
|
69
|
+
renderItemContent: k || G,
|
|
67
70
|
...A ? {
|
|
68
71
|
api: p,
|
|
69
|
-
getSearchProps:
|
|
72
|
+
getSearchProps: u ? l || E : l
|
|
70
73
|
} : {
|
|
71
74
|
options: c,
|
|
72
|
-
getSearchCallback:
|
|
73
|
-
if (!
|
|
74
|
-
const f =
|
|
75
|
-
return
|
|
75
|
+
getSearchCallback: u ? ({ searchText: e }, s) => {
|
|
76
|
+
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);
|
|
76
79
|
} : void 0
|
|
77
80
|
},
|
|
78
81
|
single: o,
|
|
79
|
-
allowSelectedAll: !o &&
|
|
82
|
+
allowSelectedAll: !o && d,
|
|
80
83
|
selectedAllValue: n,
|
|
81
|
-
placeholder:
|
|
84
|
+
placeholder: L,
|
|
82
85
|
isPopup: !0,
|
|
83
|
-
allowClear: w && !
|
|
84
|
-
disabled:
|
|
86
|
+
allowClear: w && !a,
|
|
87
|
+
disabled: a
|
|
85
88
|
}
|
|
86
89
|
)
|
|
87
90
|
}
|
|
88
91
|
);
|
|
89
92
|
}, M = (r) => {
|
|
90
|
-
const { useDecorator:
|
|
91
|
-
return
|
|
93
|
+
const { useDecorator: t } = I.hooks;
|
|
94
|
+
return t({
|
|
92
95
|
fieldName: "superSelect",
|
|
93
96
|
...r
|
|
94
|
-
})(
|
|
97
|
+
})($);
|
|
95
98
|
};
|
|
96
99
|
M.displayName = "SuperSelect";
|
|
97
|
-
const
|
|
100
|
+
const v = K(
|
|
98
101
|
M
|
|
99
102
|
);
|
|
100
103
|
export {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
m as SUPER_SELECT_ALL_VALUE,
|
|
105
|
+
v as SuperSelect,
|
|
106
|
+
Z as isSuperSelectAllValue
|
|
104
107
|
};
|
|
105
108
|
//# 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';\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 ...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 {...(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","kneRest","mapsRef","useRef","useApi","labelMapFromOptions","useMemo","map","o","kneValue","maps","marsunToKne","handleChange","next","mergeKneLabelMaps","kneToMarsun","defaultGetSearchProps","searchText","jsx","classNames","styles","KneSuperSelect","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';\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,41 +1,48 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
2
2
|
import { useIntl as p } from "@kne/react-intl";
|
|
3
3
|
import e from "../withFieldItem.js";
|
|
4
4
|
import u from "./InputFilterItem.js";
|
|
5
|
-
import
|
|
5
|
+
import n from "./NumberRangeFilterItem.js";
|
|
6
6
|
import s from "../withLocale.js";
|
|
7
|
-
import
|
|
7
|
+
import a, { SelectTableList as f, SelectCascader as I } from "@kne/super-select";
|
|
8
8
|
import { SelectFunction as d, SelectIndustry as F, SelectAddress as S } from "@kne/super-select-plus";
|
|
9
9
|
/* empty css */
|
|
10
10
|
/* empty css */
|
|
11
11
|
/* empty css */
|
|
12
|
-
import {
|
|
13
|
-
import { default as G } from "./
|
|
14
|
-
import { default as J } from "./
|
|
15
|
-
import { default as O } from "./
|
|
16
|
-
|
|
12
|
+
import { renderSelectListItemContent as P } from "../renderSelectListItemContent.js";
|
|
13
|
+
import { default as G } from "./DatePickerFilterItem.js";
|
|
14
|
+
import { default as J } from "./DateRangePickerFilterItem.js";
|
|
15
|
+
import { default as O } from "./TypeDateRangePickerFilterItem.js";
|
|
16
|
+
import { default as U } from "./SelectTreeFilterItem.js";
|
|
17
|
+
const m = (t) => s(({ placeholder: r, label: o, ...i }) => {
|
|
17
18
|
const { formatMessage: c } = p({ moduleName: "Filter" });
|
|
18
|
-
return /* @__PURE__ */
|
|
19
|
-
|
|
19
|
+
return /* @__PURE__ */ l(
|
|
20
|
+
t,
|
|
20
21
|
{
|
|
21
|
-
...
|
|
22
|
-
label:
|
|
23
|
-
placeholder:
|
|
22
|
+
...i,
|
|
23
|
+
label: o,
|
|
24
|
+
placeholder: r || c({ id: "defaultInputPlaceholder" }, { label: o })
|
|
24
25
|
}
|
|
25
26
|
);
|
|
26
|
-
})
|
|
27
|
+
});
|
|
28
|
+
function h({ renderItemContent: t, ...r }) {
|
|
29
|
+
return /* @__PURE__ */ l(a, { ...r, renderItemContent: t || P });
|
|
30
|
+
}
|
|
31
|
+
const A = m(u), $ = m(n), j = e(h, {
|
|
32
|
+
forcePopup: !0
|
|
33
|
+
}), E = e(f, { forcePopup: !0 }), M = e(I, { forcePopup: !0 }), W = e(d, { forcePopup: !0 }), q = e(F, { forcePopup: !0 }), v = e(S, { forcePopup: !0 });
|
|
27
34
|
export {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
G as DatePickerFilterItem,
|
|
36
|
+
J as DateRangePickerFilterItem,
|
|
37
|
+
A as InputFilterItem,
|
|
38
|
+
$ as NumberRangeFilterItem,
|
|
39
|
+
v as SelectAddressFilterItem,
|
|
40
|
+
M as SelectCascaderFilterItem,
|
|
41
|
+
W as SelectFunctionFilterItem,
|
|
42
|
+
q as SelectIndustryFilterItem,
|
|
43
|
+
E as SelectTableListFilterItem,
|
|
44
|
+
U as SelectTreeFilterItem,
|
|
45
|
+
j as SuperSelectFilterItem,
|
|
46
|
+
O as TypeDateRangePickerFilterItem
|
|
40
47
|
};
|
|
41
48
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/ReactFilter/fields/index.jsx"],"sourcesContent":["// @ts-nocheck\nimport { useIntl } from '@kne/react-intl';\nimport withFieldItem from '../withFieldItem';\nimport InputFilterItemField from './InputFilterItem';\nimport NumberRangeFilterItemField from './NumberRangeFilterItem';\nimport withLocale from '../withLocale';\nimport SuperSelect, { SelectCascader, SelectTableList } from '@kne/super-select';\nimport { SelectAddress, SelectFunction, SelectIndustry } from '@kne/super-select-plus';\nimport '@kne/super-select/dist/index.css';\nimport '@kne/super-select-plus/dist/index.css';\n/** SuperSelect / SelectTree 弹层全局修补(选项撑满、checkbox、叶子 switcher-noop) */\nimport '../superSelectPopup.scss';\n\nconst withInputDefaultPlaceholder = (WrappedComponent) =>\n withLocale(({ placeholder, label, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n return (\n <WrappedComponent\n {...props}\n label={label}\n placeholder={placeholder || formatMessage({ id: 'defaultInputPlaceholder' }, { label })}\n />\n );\n });\n\nexport const InputFilterItem = withInputDefaultPlaceholder(InputFilterItemField);\nexport const NumberRangeFilterItem = withInputDefaultPlaceholder(NumberRangeFilterItemField);\n\nexport { default as DatePickerFilterItem } from './DatePickerFilterItem';\nexport { default as DateRangePickerFilterItem } from './DateRangePickerFilterItem';\nexport { default as TypeDateRangePickerFilterItem } from './TypeDateRangePickerFilterItem';\n\nexport const SuperSelectFilterItem = withFieldItem(
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/ReactFilter/fields/index.jsx"],"sourcesContent":["// @ts-nocheck\nimport { useIntl } from '@kne/react-intl';\nimport withFieldItem from '../withFieldItem';\nimport InputFilterItemField from './InputFilterItem';\nimport NumberRangeFilterItemField from './NumberRangeFilterItem';\nimport withLocale from '../withLocale';\nimport SuperSelect, { SelectCascader, SelectTableList } from '@kne/super-select';\nimport { SelectAddress, SelectFunction, SelectIndustry } from '@kne/super-select-plus';\nimport '@kne/super-select/dist/index.css';\nimport '@kne/super-select-plus/dist/index.css';\n/** SuperSelect / SelectTree 弹层全局修补(选项撑满、checkbox、叶子 switcher-noop) */\nimport '../superSelectPopup.scss';\nimport { renderSelectListItemContent } from '../renderSelectListItemContent';\n\nconst withInputDefaultPlaceholder = (WrappedComponent) =>\n withLocale(({ placeholder, label, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n return (\n <WrappedComponent\n {...props}\n label={label}\n placeholder={placeholder || formatMessage({ id: 'defaultInputPlaceholder' }, { label })}\n />\n );\n });\n\n/** 默认超长省略 + title hover;业务可传 renderItemContent 覆盖 */\nfunction SuperSelectWithLabelEllipsis({ renderItemContent, ...props }) {\n return (\n <SuperSelect {...props} renderItemContent={renderItemContent || renderSelectListItemContent} />\n );\n}\n\nexport const InputFilterItem = withInputDefaultPlaceholder(InputFilterItemField);\nexport const NumberRangeFilterItem = withInputDefaultPlaceholder(NumberRangeFilterItemField);\n\nexport { default as DatePickerFilterItem } from './DatePickerFilterItem';\nexport { default as DateRangePickerFilterItem } from './DateRangePickerFilterItem';\nexport { default as TypeDateRangePickerFilterItem } from './TypeDateRangePickerFilterItem';\n\nexport const SuperSelectFilterItem = withFieldItem(SuperSelectWithLabelEllipsis, {\n forcePopup: true,\n});\nexport const SelectTableListFilterItem = withFieldItem(SelectTableList, { forcePopup: true });\nexport { default as SelectTreeFilterItem } from './SelectTreeFilterItem';\nexport const SelectCascaderFilterItem = withFieldItem(SelectCascader, { forcePopup: true });\nexport const SelectFunctionFilterItem = withFieldItem(SelectFunction, { forcePopup: true });\nexport const SelectIndustryFilterItem = withFieldItem(SelectIndustry, { forcePopup: true });\nexport const SelectAddressFilterItem = withFieldItem(SelectAddress, { forcePopup: true });\n"],"names":["withInputDefaultPlaceholder","WrappedComponent","withLocale","placeholder","label","props","formatMessage","useIntl","jsx","SuperSelectWithLabelEllipsis","renderItemContent","SuperSelect","renderSelectListItemContent","InputFilterItem","InputFilterItemField","NumberRangeFilterItem","NumberRangeFilterItemField","SuperSelectFilterItem","withFieldItem","SelectTableListFilterItem","SelectTableList","SelectCascaderFilterItem","SelectCascader","SelectFunctionFilterItem","SelectFunction","SelectIndustryFilterItem","SelectIndustry","SelectAddressFilterItem","SelectAddress"],"mappings":";;;;;;;;;;;;;;;;AAcA,MAAMA,IAA8B,CAACC,MACnCC,EAAW,CAAC,EAAE,aAAAC,GAAa,OAAAC,GAAO,GAAGC,QAAY;AAC/C,QAAM,EAAE,eAAAC,EAAA,IAAkBC,EAAQ,EAAE,YAAY,UAAU;AAC1D,SACE,gBAAAC;AAAA,IAACP;AAAA,IAAA;AAAA,MACE,GAAGI;AAAA,MACJ,OAAAD;AAAA,MACA,aAAaD,KAAeG,EAAc,EAAE,IAAI,0BAAA,GAA6B,EAAE,OAAAF,EAAA,CAAO;AAAA,IAAA;AAAA,EAAA;AAG5F,CAAC;AAGH,SAASK,EAA6B,EAAE,mBAAAC,GAAmB,GAAGL,KAAS;AACrE,2BACGM,GAAA,EAAa,GAAGN,GAAO,mBAAmBK,KAAqBE,GAA6B;AAEjG;AAEO,MAAMC,IAAkBb,EAA4Bc,CAAoB,GAClEC,IAAwBf,EAA4BgB,CAA0B,GAM9EC,IAAwBC,EAAcT,GAA8B;AAAA,EAC/E,YAAY;AACd,CAAC,GACYU,IAA4BD,EAAcE,GAAiB,EAAE,YAAY,IAAM,GAE/EC,IAA2BH,EAAcI,GAAgB,EAAE,YAAY,IAAM,GAC7EC,IAA2BL,EAAcM,GAAgB,EAAE,YAAY,IAAM,GAC7EC,IAA2BP,EAAcQ,GAAgB,EAAE,YAAY,IAAM,GAC7EC,IAA0BT,EAAcU,GAAe,EAAE,YAAY,IAAM;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs as o, Fragment as d, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
function b({ item: e, props: l }) {
|
|
3
|
+
const s = (l == null ? void 0 : l.labelKey) || "label", n = e == null ? void 0 : e[s], c = typeof n == "string" || typeof n == "number" ? String(n) : void 0, t = e == null ? void 0 : e.description, r = typeof t == "string" || typeof t == "number" ? String(t) : void 0;
|
|
4
|
+
return /* @__PURE__ */ o(d, { children: [
|
|
5
|
+
/* @__PURE__ */ i("div", { className: "select-list-item-label", title: c, children: n }),
|
|
6
|
+
t ? /* @__PURE__ */ i("div", { className: "select-list-item-description", title: r, children: t }) : null
|
|
7
|
+
] });
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
b as renderSelectListItemContent
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=renderSelectListItemContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderSelectListItemContent.js","sources":["../../../src/components/ReactFilter/renderSelectListItemContent.jsx"],"sourcesContent":["/**\n * SuperSelect 列表项文案:超长省略 + 原生 title hover 看全文。\n * 覆盖 kne 默认(仅 div.select-list-item-label、无 title)。\n */\nexport function renderSelectListItemContent({ item, props }) {\n const labelKey = props?.labelKey || 'label';\n const label = item?.[labelKey];\n const title = typeof label === 'string' || typeof label === 'number' ? String(label) : undefined;\n const description = item?.description;\n const descriptionTitle =\n typeof description === 'string' || typeof description === 'number'\n ? String(description)\n : undefined;\n\n return (\n <>\n <div className=\"select-list-item-label\" title={title}>\n {label}\n </div>\n {description ? (\n <div className=\"select-list-item-description\" title={descriptionTitle}>\n {description}\n </div>\n ) : null}\n </>\n );\n}\n"],"names":["renderSelectListItemContent","item","props","labelKey","label","title","description","descriptionTitle","jsxs","Fragment","jsx"],"mappings":";AAIO,SAASA,EAA4B,EAAE,MAAAC,GAAM,OAAAC,KAAS;AAC3D,QAAMC,KAAWD,KAAA,gBAAAA,EAAO,aAAY,SAC9BE,IAAQH,KAAA,gBAAAA,EAAOE,IACfE,IAAQ,OAAOD,KAAU,YAAY,OAAOA,KAAU,WAAW,OAAOA,CAAK,IAAI,QACjFE,IAAcL,KAAA,gBAAAA,EAAM,aACpBM,IACJ,OAAOD,KAAgB,YAAY,OAAOA,KAAgB,WACtD,OAAOA,CAAW,IAClB;AAEN,SACE,gBAAAE,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,0BAAyB,OAAAL,GACrC,UAAAD,GACH;AAAA,IACCE,sBACE,OAAA,EAAI,WAAU,gCAA+B,OAAOC,GAClD,aACH,IACE;AAAA,EAAA,GACN;AAEJ;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { MessageTemplateAdminProps } from './types';
|
|
3
3
|
/**
|
|
4
|
-
* 消息模板配置壳。权限码 / SSO
|
|
4
|
+
* 消息模板配置壳。权限码 / SSO / HTTP 由业务 DI。
|
|
5
5
|
* 列表:core Table;表单:FormInfo FormModal;正文:L2 Editor 懒加载。
|
|
6
6
|
*/
|
|
7
7
|
export declare const MessageTemplateAdmin: React.FC<MessageTemplateAdminProps>;
|