@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.
Files changed (37) hide show
  1. package/dist/components/Filter/createKneFilterField.js +42 -39
  2. package/dist/components/Filter/createKneFilterField.js.map +1 -1
  3. package/dist/components/Form/SuperSelect.js +48 -45
  4. package/dist/components/Form/SuperSelect.js.map +1 -1
  5. package/dist/components/ReactFilter/fields/index.js +33 -26
  6. package/dist/components/ReactFilter/fields/index.js.map +1 -1
  7. package/dist/components/ReactFilter/renderSelectListItemContent.d.ts +8 -0
  8. package/dist/components/ReactFilter/renderSelectListItemContent.js +12 -0
  9. package/dist/components/ReactFilter/renderSelectListItemContent.js.map +1 -0
  10. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/MessageTemplateAdmin.d.ts +1 -1
  11. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/MessageTemplateAdmin.js +158 -137
  12. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/MessageTemplateAdmin.js.map +1 -1
  13. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/Modal/TemplateFormModal.js +218 -126
  14. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/Modal/TemplateFormModal.js.map +1 -1
  15. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/PushRulesPanel/index.d.ts +8 -1
  16. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/PushRulesPanel/index.js +310 -170
  17. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/PushRulesPanel/index.js.map +1 -1
  18. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/VariablesPanel/index.js +87 -76
  19. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/VariablesPanel/index.js.map +1 -1
  20. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/audienceSlots.d.ts +14 -0
  21. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/audienceSlots.js +31 -0
  22. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/audienceSlots.js.map +1 -0
  23. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/index.d.ts +3 -1
  24. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/style.module.scss.js +18 -6
  25. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/style.module.scss.js.map +1 -1
  26. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/types.d.ts +27 -0
  27. package/dist/components/Tools/MessageCenter/MessageTemplateAdmin/types.js.map +1 -1
  28. package/dist/components/Tools/MessageCenter/index.d.ts +3 -1
  29. package/dist/components/Tools/MessageCenter/utils/audienceUserSelectOptions.d.ts +16 -0
  30. package/dist/components/Tools/MessageCenter/utils/audienceUserSelectOptions.js +33 -0
  31. package/dist/components/Tools/MessageCenter/utils/audienceUserSelectOptions.js.map +1 -0
  32. package/dist/components/Tools/MessageCenter/utils/templateCode.js +11 -17
  33. package/dist/components/Tools/MessageCenter/utils/templateCode.js.map +1 -1
  34. package/dist/components/Tools/index.d.ts +1 -1
  35. package/dist/marsun-components-core.css +1 -1
  36. package/dist/styles/global.css +1 -1
  37. package/package.json +8 -1
@@ -1,12 +1,13 @@
1
1
  import { jsx as b } from "react/jsx-runtime";
2
- import { useRef as k, useState as O, useEffect as L, useMemo as P } from "react";
3
- import S from "./FilterPopover/index.js";
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 a, marsunValueLabel as z, kneValueLabel as G, mergeKneLabelMaps as V, kneToMarsun as H } from "./kneValueAdapter.js";
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
- function K(u, f) {
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: j,
21
- clearOnDepsChange: x = !0,
22
- ...N
21
+ dependsOn: I,
22
+ clearOnDepsChange: S = !0,
23
+ renderItemContent: j,
24
+ ...L
23
25
  }) => {
24
- const l = k({
26
+ const l = N({
25
27
  labelMap: {},
26
28
  itemMap: {}
27
- }), [n, c] = O(
28
- () => a(r, { single: t, ...l.current })
29
- ), m = k(e);
30
- m.current = e;
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: j,
36
- clearOnDepsChange: x,
37
+ dependsOn: I,
38
+ clearOnDepsChange: S,
37
39
  onDepsClear: () => {
38
40
  var i;
39
- return (i = m.current) == null ? void 0 : i.call(m, void 0);
41
+ return (i = o.current) == null ? void 0 : i.call(o, void 0);
40
42
  }
41
- }), o = q(), d = W({ display: A, hidden: y });
42
- L(() => {
43
- c(a(r, { single: t, ...l.current }));
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 = P(() => {
47
+ const F = O(() => {
46
48
  const i = z(r, l.current.labelMap);
47
- return i || G(a(r, { single: t, ...l.current }), t);
49
+ return i || G(n(r, { single: t, ...l.current }), t);
48
50
  }, [r, t]);
49
- if (L(() => {
50
- if (o) {
51
+ if (k(() => {
52
+ if (c) {
51
53
  if (!d) {
52
- o.unregister(s);
54
+ c.unregister(s);
53
55
  return;
54
56
  }
55
- F ? o.register(s, {
57
+ F ? c.register(s, {
56
58
  label: p,
57
59
  valueLabel: F,
58
60
  onRemove: () => e == null ? void 0 : e(void 0)
59
- }) : o.unregister(s);
61
+ }) : c.unregister(s);
60
62
  }
61
63
  }, [F, s, p, d]), !d) return null;
62
- const B = Array.isArray(r) ? r.length > 0 : r != null && r !== "", E = (i) => {
63
- l.current = V(i, l.current), c(i);
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
- S,
68
+ P,
67
69
  {
68
70
  label: p,
69
- active: w || B,
71
+ active: w || x,
70
72
  width: v,
71
73
  onOpenChange: (i) => {
72
- i && c(a(r, { single: t, ...l.current }));
74
+ i && m(n(r, { single: t, ...l.current }));
73
75
  },
74
76
  onConfirm: () => {
75
- l.current = V(n, l.current), e == null || e(H(n, t));
77
+ l.current = V(u, l.current), e == null || e(H(u, t));
76
78
  },
77
79
  onReset: () => {
78
- c(t ? null : []), e == null || e(void 0);
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
- u,
83
+ a,
82
84
  {
83
- ...N,
85
+ ...L,
84
86
  className: R(
85
87
  "kne-filter-field-inner",
86
88
  D["kne-filter-field-inner"],
87
- N.className
89
+ L.className
88
90
  ),
89
91
  single: t,
90
92
  allowClear: !1,
91
93
  valueType: "all",
92
- value: n ?? (t ? null : []),
93
- onChange: E
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(${u.displayName || u.name || "Component"})`, M;
102
+ return M.displayName = `KneFilterField(${a.displayName || a.name || "Component"})`, M;
100
103
  }
101
104
  export {
102
- K as createKneFilterField
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":"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"}
1
+ {"version":3,"file":"createKneFilterField.js","sources":["../../../src/components/Filter/createKneFilterField.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport FilterPopover from './FilterPopover';\nimport type { BaseFilterProps } from './types';\nimport { resolveFilterVisible } from './types';\nimport { useFilterFieldBridge, useFilterRegister } from './useFilterState';\nimport {\n kneToMarsun,\n kneValueLabel,\n marsunToKne,\n marsunValueLabel,\n mergeKneLabelMaps,\n type KneSelectItem,\n type MarsunSelectValue,\n} from './kneValueAdapter';\nimport styles from './createKneFilterField.module.scss';\nimport classNames from 'classnames';\nimport { renderSelectListItemContent } from '../ReactFilter/renderSelectListItemContent';\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 R from "@kne/super-select";
2
+ import F from "@kne/super-select";
3
3
  /* empty css */
4
- import * as F from "@kne/react-form-antd";
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
- const u = "all";
11
- function G(r, e = u) {
12
- return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(e) : String(r) === String(e);
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 W(r, e = u) {
15
- return r == null || r === "" ? !1 : Array.isArray(r) ? r.length === 1 && String(r[0]) === String(e) : String(r) === String(e);
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 I = ({
18
+ const $ = ({
18
19
  value: r,
19
- onChange: e,
20
- disabled: i,
20
+ onChange: t,
21
+ disabled: a,
21
22
  options: c = [],
22
23
  single: o = !1,
23
- allowSelectedAll: L = !1,
24
- selectedAllValue: n = { value: u, label: "全选" },
25
- placeholder: d,
26
- showSearch: m = !0,
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
- ...k
32
+ renderItemContent: k,
33
+ ...C
32
34
  }) => {
33
- const a = _({
35
+ const i = _({
34
36
  labelMap: {},
35
37
  itemMap: {}
36
38
  }), A = p != null, S = b(() => {
37
- const t = {};
39
+ const e = {};
38
40
  for (const s of c)
39
- t[String(s.value)] = s.label;
40
- return t[String(n.value)] = n.label, t;
41
+ e[String(s.value)] = s.label;
42
+ return e[String(n.value)] = n.label, e;
41
43
  }, [c, n]), N = b(() => {
42
- const t = {
43
- labelMap: { ...S, ...a.current.labelMap },
44
- itemMap: a.current.itemMap
44
+ const e = {
45
+ labelMap: { ...S, ...i.current.labelMap },
46
+ itemMap: i.current.itemMap
45
47
  };
46
- return G(r, n.value) ? [n] : U(r, { single: o, ...t });
47
- }, [r, o, S, n]), h = (t) => {
48
- a.current = j(t, a.current), e == null || e(z(t, o));
49
- }, C = ({ searchText: t }) => ({
50
- keyword: t || "",
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
- R,
64
+ F,
63
65
  {
64
- ...k,
66
+ ...C,
65
67
  value: N,
66
68
  onChange: h,
69
+ renderItemContent: k || G,
67
70
  ...A ? {
68
71
  api: p,
69
- getSearchProps: m ? l || C : l
72
+ getSearchProps: u ? l || E : l
70
73
  } : {
71
74
  options: c,
72
- getSearchCallback: m ? ({ searchText: t }, s) => {
73
- if (!t) return !0;
74
- const f = t.toLowerCase(), E = String(s.label ?? "").toLowerCase(), P = String(s.value ?? "").toLowerCase();
75
- return E.includes(f) || P.includes(f);
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 && L,
82
+ allowSelectedAll: !o && d,
80
83
  selectedAllValue: n,
81
- placeholder: d,
84
+ placeholder: L,
82
85
  isPopup: !0,
83
- allowClear: w && !i,
84
- disabled: i
86
+ allowClear: w && !a,
87
+ disabled: a
85
88
  }
86
89
  )
87
90
  }
88
91
  );
89
92
  }, M = (r) => {
90
- const { useDecorator: e } = F.hooks;
91
- return e({
93
+ const { useDecorator: t } = I.hooks;
94
+ return t({
92
95
  fieldName: "superSelect",
93
96
  ...r
94
- })(I);
97
+ })($);
95
98
  };
96
99
  M.displayName = "SuperSelect";
97
- const X = K(
100
+ const v = K(
98
101
  M
99
102
  );
100
103
  export {
101
- u as SUPER_SELECT_ALL_VALUE,
102
- X as SuperSelect,
103
- W as isSuperSelectAllValue
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 i } from "react/jsx-runtime";
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 a from "./NumberRangeFilterItem.js";
5
+ import n from "./NumberRangeFilterItem.js";
6
6
  import s from "../withLocale.js";
7
- import n, { SelectTableList as f, SelectCascader as I } from "@kne/super-select";
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 { default as B } from "./DatePickerFilterItem.js";
13
- import { default as G } from "./DateRangePickerFilterItem.js";
14
- import { default as J } from "./TypeDateRangePickerFilterItem.js";
15
- import { default as O } from "./SelectTreeFilterItem.js";
16
- const r = (o) => s(({ placeholder: l, label: t, ...m }) => {
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__ */ i(
19
- o,
19
+ return /* @__PURE__ */ l(
20
+ t,
20
21
  {
21
- ...m,
22
- label: t,
23
- placeholder: l || c({ id: "defaultInputPlaceholder" }, { label: t })
22
+ ...i,
23
+ label: o,
24
+ placeholder: r || c({ id: "defaultInputPlaceholder" }, { label: o })
24
25
  }
25
26
  );
26
- }), L = r(u), N = r(a), A = e(n, { forcePopup: !0 }), C = e(f, { forcePopup: !0 }), $ = e(I, { forcePopup: !0 }), j = e(d, { forcePopup: !0 }), M = e(F, { forcePopup: !0 }), q = e(S, { forcePopup: !0 });
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
- B as DatePickerFilterItem,
29
- G as DateRangePickerFilterItem,
30
- L as InputFilterItem,
31
- N as NumberRangeFilterItem,
32
- q as SelectAddressFilterItem,
33
- $ as SelectCascaderFilterItem,
34
- j as SelectFunctionFilterItem,
35
- M as SelectIndustryFilterItem,
36
- C as SelectTableListFilterItem,
37
- O as SelectTreeFilterItem,
38
- A as SuperSelectFilterItem,
39
- J as TypeDateRangePickerFilterItem
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(SuperSelect, { forcePopup: true });\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","InputFilterItem","InputFilterItemField","NumberRangeFilterItem","NumberRangeFilterItemField","SuperSelectFilterItem","withFieldItem","SuperSelect","SelectTableListFilterItem","SelectTableList","SelectCascaderFilterItem","SelectCascader","SelectFunctionFilterItem","SelectFunction","SelectIndustryFilterItem","SelectIndustry","SelectAddressFilterItem","SelectAddress"],"mappings":";;;;;;;;;;;;;;;AAaA,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,GAEUK,IAAkBT,EAA4BU,CAAoB,GAClEC,IAAwBX,EAA4BY,CAA0B,GAM9EC,IAAwBC,EAAcC,GAAa,EAAE,YAAY,IAAM,GACvEC,IAA4BF,EAAcG,GAAiB,EAAE,YAAY,IAAM,GAE/EC,IAA2BJ,EAAcK,GAAgB,EAAE,YAAY,IAAM,GAC7EC,IAA2BN,EAAcO,GAAgB,EAAE,YAAY,IAAM,GAC7EC,IAA2BR,EAAcS,GAAgB,EAAE,YAAY,IAAM,GAC7EC,IAA0BV,EAAcW,GAAe,EAAE,YAAY,IAAM;"}
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,8 @@
1
+ /**
2
+ * SuperSelect 列表项文案:超长省略 + 原生 title hover 看全文。
3
+ * 覆盖 kne 默认(仅 div.select-list-item-label、无 title)。
4
+ */
5
+ export function renderSelectListItemContent({ item, props }: {
6
+ item: any;
7
+ props: any;
8
+ }): import("react").JSX.Element;
@@ -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 树 / HTTP 由业务 DI。
4
+ * 消息模板配置壳。权限码 / SSO / HTTP 由业务 DI。
5
5
  * 列表:core Table;表单:FormInfo FormModal;正文:L2 Editor 懒加载。
6
6
  */
7
7
  export declare const MessageTemplateAdmin: React.FC<MessageTemplateAdminProps>;