@hkyhy/marsun-components-core 0.1.15 → 0.1.18

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 (39) hide show
  1. package/dist/components/Filter/CommonFilter/index.js +34 -30
  2. package/dist/components/Filter/CommonFilter/index.js.map +1 -1
  3. package/dist/components/Filter/CommonFilter/style.module.scss.js +17 -16
  4. package/dist/components/Filter/CommonFilter/style.module.scss.js.map +1 -1
  5. package/dist/components/Filter/FilterSelect/index.d.ts +2 -0
  6. package/dist/components/Filter/FilterSelect/index.js +140 -118
  7. package/dist/components/Filter/FilterSelect/index.js.map +1 -1
  8. package/dist/components/Filter/FilterSelect/style.module.scss.js +12 -10
  9. package/dist/components/Filter/FilterSelect/style.module.scss.js.map +1 -1
  10. package/dist/components/Filter/types.d.ts +2 -0
  11. package/dist/components/Filter/types.js.map +1 -1
  12. package/dist/components/Filter/useFilterState.d.ts +2 -0
  13. package/dist/components/Filter/useFilterState.js +27 -26
  14. package/dist/components/Filter/useFilterState.js.map +1 -1
  15. package/dist/components/Layout/ModulePageShell/index.d.ts +17 -0
  16. package/dist/components/Layout/ModulePageShell/index.js +42 -0
  17. package/dist/components/Layout/ModulePageShell/index.js.map +1 -0
  18. package/dist/components/Layout/ModulePageShell/style.module.scss.js +10 -0
  19. package/dist/components/Layout/ModulePageShell/style.module.scss.js.map +1 -0
  20. package/dist/components/Layout/PageHeaderLayout/index.d.ts +3 -1
  21. package/dist/components/Layout/PageHeaderLayout/index.js +43 -34
  22. package/dist/components/Layout/PageHeaderLayout/index.js.map +1 -1
  23. package/dist/components/Layout/PageHeaderLayout/style.module.scss.js +5 -4
  24. package/dist/components/Layout/PageHeaderLayout/style.module.scss.js.map +1 -1
  25. package/dist/components/Layout/PageShell/PageShellContext.d.ts +20 -0
  26. package/dist/components/Layout/PageShell/PageShellContext.js +39 -0
  27. package/dist/components/Layout/PageShell/PageShellContext.js.map +1 -0
  28. package/dist/components/Layout/PageShell/index.d.ts +2 -0
  29. package/dist/components/Layout/PageSpin/index.d.ts +9 -0
  30. package/dist/components/Layout/PageSpin/index.js +9 -0
  31. package/dist/components/Layout/PageSpin/index.js.map +1 -0
  32. package/dist/components/Layout/PageSpin/style.module.scss.js +7 -0
  33. package/dist/components/Layout/PageSpin/style.module.scss.js.map +1 -0
  34. package/dist/components/Layout/index.d.ts +6 -0
  35. package/dist/index.js +152 -144
  36. package/dist/index.js.map +1 -1
  37. package/dist/marsun-components-core.css +1 -1
  38. package/dist/styles/global.css +1 -1
  39. package/package.json +2 -1
@@ -1,65 +1,69 @@
1
1
  import { jsxs as o, jsx as l } from "react/jsx-runtime";
2
2
  import { X as T } from "../../Icons/index.js";
3
3
  import { Space as k, Tooltip as E, Button as x } from "antd";
4
- import e from "classnames";
4
+ import t from "classnames";
5
5
  import F, { useMemo as L } from "react";
6
- import t from "./style.module.scss.js";
6
+ import e from "./style.module.scss.js";
7
7
  import { useFilterState as S, FilterProvider as _ } from "../useFilterState.js";
8
8
  import D from "../../Tag/SemanticTag.js";
9
9
  const j = 20;
10
- function z(c, r) {
11
- return c.length <= r ? { display: c, truncated: !1 } : { display: `${c.slice(0, r)}...`, truncated: !0 };
10
+ function z(r, m) {
11
+ return r.length <= m ? { display: r, truncated: !1 } : { display: `${r.slice(0, m)}...`, truncated: !0 };
12
12
  }
13
13
  const I = ({
14
- children: c,
15
- list: r,
14
+ children: r,
15
+ list: m,
16
16
  extra: n,
17
17
  onClearAll: i,
18
18
  label: u = "筛选",
19
19
  selectedTagMaxLength: h = j
20
20
  }) => {
21
- const { selectedItems: a, register: s, unregister: d, clearAll: f } = S(), N = L(() => ({ register: s, unregister: d }), [s, d]), v = F.useCallback(() => {
22
- f(), i == null || i();
23
- }, [f, i]);
24
- return /* @__PURE__ */ o("div", { className: e("common-filter-root", t["common-filter-root"]), children: [
25
- /* @__PURE__ */ o("div", { className: e("common-filter-container", t["common-filter-container"]), children: [
26
- /* @__PURE__ */ l("span", { className: e("common-filter-label", t["common-filter-label"]), children: u }),
27
- /* @__PURE__ */ l(_, { ctx: N, children: /* @__PURE__ */ o("div", { className: e("common-filter-content", t["common-filter-content"]), children: [
28
- /* @__PURE__ */ o("div", { className: e("common-filter-items", t["common-filter-items"]), children: [
29
- r,
30
- c
21
+ const { selectedItems: a, register: s, unregister: f, clearAll: d } = S(), N = L(() => ({ register: s, unregister: f }), [s, f]), v = F.useCallback(() => {
22
+ d(), i == null || i();
23
+ }, [d, i]);
24
+ return /* @__PURE__ */ o("div", { className: t("common-filter-root", e["common-filter-root"]), children: [
25
+ /* @__PURE__ */ o("div", { className: t("common-filter-container", e["common-filter-container"]), children: [
26
+ /* @__PURE__ */ l("span", { className: t("common-filter-label", e["common-filter-label"]), children: u }),
27
+ /* @__PURE__ */ l(_, { ctx: N, children: /* @__PURE__ */ o("div", { className: t("common-filter-content", e["common-filter-content"]), children: [
28
+ /* @__PURE__ */ o("div", { className: t("common-filter-items", e["common-filter-items"]), children: [
29
+ m,
30
+ r
31
31
  ] }),
32
- n && /* @__PURE__ */ l("div", { className: e("common-filter-extra", t["common-filter-extra"]), children: n })
32
+ n && /* @__PURE__ */ l("div", { className: t("common-filter-extra", e["common-filter-extra"]), children: n })
33
33
  ] }) })
34
34
  ] }),
35
- a.length > 0 && /* @__PURE__ */ o("div", { className: e("common-filter-selected", t["common-filter-selected"]), children: [
36
- /* @__PURE__ */ o("div", { className: e("common-filter-selected-main", t["common-filter-selected-main"]), children: [
37
- /* @__PURE__ */ l("span", { className: e("common-filter-selected-title", t["common-filter-selected-title"]), children: "您已选择" }),
38
- /* @__PURE__ */ l(k, { size: [8, 8], wrap: !0, className: e("common-filter-selected-tags", t["common-filter-selected-tags"]), children: a.map((m) => {
39
- const { display: p, truncated: g } = z(m.valueLabel, h), b = g ? /* @__PURE__ */ l(E, { title: m.valueLabel, children: /* @__PURE__ */ l("span", { children: p }) }) : /* @__PURE__ */ l("span", { children: p });
40
- return /* @__PURE__ */ l(D, { color: "primary", children: /* @__PURE__ */ o("span", { className: e("common-filter-tag", t["common-filter-tag"]), children: [
35
+ a.length > 0 && /* @__PURE__ */ o("div", { className: t("common-filter-selected", e["common-filter-selected"]), children: [
36
+ /* @__PURE__ */ o("div", { className: t("common-filter-selected-main", e["common-filter-selected-main"]), children: [
37
+ /* @__PURE__ */ l("span", { className: t("common-filter-selected-title", e["common-filter-selected-title"]), children: "您已选择" }),
38
+ /* @__PURE__ */ l(k, { size: [8, 8], wrap: !0, className: t("common-filter-selected-tags", e["common-filter-selected-tags"]), children: a.map((c) => {
39
+ const { display: p, truncated: b } = z(c.valueLabel, h), g = b ? /* @__PURE__ */ l(E, { title: c.valueLabel, children: /* @__PURE__ */ l("span", { children: p }) }) : /* @__PURE__ */ l("span", { children: p });
40
+ return /* @__PURE__ */ l(D, { color: "primary", children: /* @__PURE__ */ o("span", { className: t("common-filter-tag", e["common-filter-tag"]), children: [
41
41
  /* @__PURE__ */ o(
42
42
  "span",
43
43
  {
44
- className: e("common-filter-tag-label", t["common-filter-tag-label"]),
44
+ className: t("common-filter-tag-label", e["common-filter-tag-label"]),
45
45
  style: { color: "var(--font-color)" },
46
46
  children: [
47
- m.label,
47
+ c.label,
48
48
  ":"
49
49
  ]
50
50
  }
51
51
  ),
52
- b,
52
+ g,
53
53
  /* @__PURE__ */ l(
54
54
  T,
55
55
  {
56
- className: e("common-filter-tag-close", t["common-filter-tag-close"]),
56
+ className: t(
57
+ "common-filter-tag-close",
58
+ e["common-filter-tag-close"],
59
+ c.removable === !1 && e["common-filter-tag-close-disabled"]
60
+ ),
57
61
  onClick: (y) => {
58
- y.preventDefault(), m.onRemove();
62
+ y.preventDefault(), c.removable !== !1 && c.onRemove();
59
63
  }
60
64
  }
61
65
  )
62
- ] }) }, m.key);
66
+ ] }) }, c.key);
63
67
  }) })
64
68
  ] }),
65
69
  /* @__PURE__ */ l(
@@ -68,7 +72,7 @@ const I = ({
68
72
  type: "link",
69
73
  size: "small",
70
74
  onClick: v,
71
- className: e("common-filter-clear-btn", t["common-filter-clear-btn"]),
75
+ className: t("common-filter-clear-btn", e["common-filter-clear-btn"]),
72
76
  children: "清空全部"
73
77
  }
74
78
  )
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/Filter/CommonFilter/index.tsx"],"sourcesContent":["import { SemanticTag } from '@/components/Tag';\nimport { X } from '@/components/Icons';\nimport { Button, Space, Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport React, { useMemo } from 'react';\nimport styles from './style.module.scss';\nimport { FilterProvider, useFilterState } from '../useFilterState';\n\nconst DEFAULT_SELECTED_TAG_MAX_LENGTH = 20;\n\nfunction truncateText(text: string, maxLength: number) {\n if (text.length <= maxLength) {\n return { display: text, truncated: false };\n }\n return { display: `${text.slice(0, maxLength)}...`, truncated: true };\n}\n\ninterface CommonFilterProps {\n children?: React.ReactNode;\n /** 筛选项 JSX 数组,如 [<FilterInput .../>, <FilterSelect .../>] */\n list?: React.ReactNode[];\n /** 右侧额外内容(与筛选项两端对齐) */\n extra?: React.ReactNode;\n /** 清空全部回调 */\n onClearAll?: () => void;\n /** 左侧标签文字 */\n label?: string;\n /** 已选标签 value 最大字符数,超出显示 ... 并在 hover 时展示完整内容 */\n selectedTagMaxLength?: number;\n}\n\n/**\n * 通用筛选栏容器\n *\n * 内部通过 useFilterState 管理各子组件的注册状态,\n * 子组件(FilterInput / FilterSelect / FilterTreeSelect)自行通过 useFilterRegister 注册选中项。\n * 外部不再需要手动维护 selectedItems 数组。\n *\n * 用法一(children 模式):\n * ```tsx\n * <CommonFilter label=\"筛选\">\n * <FilterInput filterKey=\"keyword\" label=\"关键词\" value={keyword} onChange={setKeyword} />\n * <FilterSelect filterKey=\"status\" label=\"状态\" options={options} value={status} onChange={setStatus} />\n * </CommonFilter>\n * ```\n *\n * 用法二(list 模式):\n * ```tsx\n * const filterList = [\n * <FilterInput key=\"keyword\" filterKey=\"keyword\" label=\"关键词\" value={keyword} onChange={setKeyword} />,\n * <FilterSelect key=\"status\" filterKey=\"status\" label=\"状态\" options={options} value={status} onChange={setStatus} />,\n * ];\n * <CommonFilter label=\"筛选\" list={filterList} extra={<Button>导出</Button>} />\n * ```\n */\nconst CommonFilter: React.FC<CommonFilterProps> = ({\n children,\n list,\n extra,\n onClearAll,\n label = '筛选',\n selectedTagMaxLength = DEFAULT_SELECTED_TAG_MAX_LENGTH,\n}) => {\n const { selectedItems, register, unregister, clearAll } = useFilterState();\n\n const filterCtx = useMemo(() => ({ register, unregister }), [register, unregister]);\n\n // 合并外部 onClearAll 和内部的 clearAll\n const handleClearAll = React.useCallback(() => {\n clearAll();\n onClearAll?.();\n }, [clearAll, onClearAll]);\n\n return (\n <div className={classNames('common-filter-root', styles['common-filter-root'])}>\n {/* 筛选行 */}\n <div className={classNames('common-filter-container', styles['common-filter-container'])}>\n <span className={classNames('common-filter-label', styles['common-filter-label'])}>{label}</span>\n <FilterProvider ctx={filterCtx}>\n <div className={classNames('common-filter-content', styles['common-filter-content'])}>\n <div className={classNames('common-filter-items', styles['common-filter-items'])}>\n {list}\n {children}\n </div>\n {extra && (\n <div className={classNames('common-filter-extra', styles['common-filter-extra'])}>{extra}</div>\n )}\n </div>\n </FilterProvider>\n </div>\n\n {/* 已选择行 */}\n {selectedItems.length > 0 && (\n <div className={classNames('common-filter-selected', styles['common-filter-selected'])}>\n <div className={classNames('common-filter-selected-main', styles['common-filter-selected-main'])}>\n <span className={classNames('common-filter-selected-title', styles['common-filter-selected-title'])}>\n 您已选择\n </span>\n <Space size={[8, 8]} wrap className={classNames('common-filter-selected-tags', styles['common-filter-selected-tags'])}>\n {selectedItems.map((s) => {\n const { display, truncated } = truncateText(s.valueLabel, selectedTagMaxLength);\n const valueNode = truncated ? (\n <Tooltip title={s.valueLabel}>\n <span>{display}</span>\n </Tooltip>\n ) : (\n <span>{display}</span>\n );\n\n return (\n <SemanticTag key={s.key} color=\"primary\">\n <span className={classNames('common-filter-tag', styles['common-filter-tag'])}>\n <span\n className={classNames('common-filter-tag-label', styles['common-filter-tag-label'])}\n style={{ color: 'var(--font-color)' }}\n >\n {s.label}:\n </span>\n {valueNode}\n <X\n className={classNames('common-filter-tag-close', styles['common-filter-tag-close'])}\n onClick={(e) => {\n e.preventDefault();\n s.onRemove();\n }}\n />\n </span>\n </SemanticTag>\n );\n })}\n </Space>\n </div>\n <Button\n type=\"link\"\n size=\"small\"\n onClick={handleClearAll}\n className={classNames('common-filter-clear-btn', styles['common-filter-clear-btn'])}\n >\n 清空全部\n </Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default CommonFilter;\nexport type { CommonFilterProps };\n"],"names":["DEFAULT_SELECTED_TAG_MAX_LENGTH","truncateText","text","maxLength","CommonFilter","children","list","extra","onClearAll","label","selectedTagMaxLength","selectedItems","register","unregister","clearAll","useFilterState","filterCtx","useMemo","handleClearAll","React","jsxs","classNames","styles","jsx","FilterProvider","Space","s","display","truncated","valueNode","Tooltip","SemanticTag","X","e","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Filter/CommonFilter/index.tsx"],"sourcesContent":["import { SemanticTag } from '@/components/Tag';\nimport { X } from '@/components/Icons';\nimport { Button, Space, Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport React, { useMemo } from 'react';\nimport styles from './style.module.scss';\nimport { FilterProvider, useFilterState } from '../useFilterState';\n\nconst DEFAULT_SELECTED_TAG_MAX_LENGTH = 20;\n\nfunction truncateText(text: string, maxLength: number) {\n if (text.length <= maxLength) {\n return { display: text, truncated: false };\n }\n return { display: `${text.slice(0, maxLength)}...`, truncated: true };\n}\n\ninterface CommonFilterProps {\n children?: React.ReactNode;\n /** 筛选项 JSX 数组,如 [<FilterInput .../>, <FilterSelect .../>] */\n list?: React.ReactNode[];\n /** 右侧额外内容(与筛选项两端对齐) */\n extra?: React.ReactNode;\n /** 清空全部回调 */\n onClearAll?: () => void;\n /** 左侧标签文字 */\n label?: string;\n /** 已选标签 value 最大字符数,超出显示 ... 并在 hover 时展示完整内容 */\n selectedTagMaxLength?: number;\n}\n\n/**\n * 通用筛选栏容器\n *\n * 内部通过 useFilterState 管理各子组件的注册状态,\n * 子组件(FilterInput / FilterSelect / FilterTreeSelect)自行通过 useFilterRegister 注册选中项。\n * 外部不再需要手动维护 selectedItems 数组。\n *\n * 用法一(children 模式):\n * ```tsx\n * <CommonFilter label=\"筛选\">\n * <FilterInput filterKey=\"keyword\" label=\"关键词\" value={keyword} onChange={setKeyword} />\n * <FilterSelect filterKey=\"status\" label=\"状态\" options={options} value={status} onChange={setStatus} />\n * </CommonFilter>\n * ```\n *\n * 用法二(list 模式):\n * ```tsx\n * const filterList = [\n * <FilterInput key=\"keyword\" filterKey=\"keyword\" label=\"关键词\" value={keyword} onChange={setKeyword} />,\n * <FilterSelect key=\"status\" filterKey=\"status\" label=\"状态\" options={options} value={status} onChange={setStatus} />,\n * ];\n * <CommonFilter label=\"筛选\" list={filterList} extra={<Button>导出</Button>} />\n * ```\n */\nconst CommonFilter: React.FC<CommonFilterProps> = ({\n children,\n list,\n extra,\n onClearAll,\n label = '筛选',\n selectedTagMaxLength = DEFAULT_SELECTED_TAG_MAX_LENGTH,\n}) => {\n const { selectedItems, register, unregister, clearAll } = useFilterState();\n\n const filterCtx = useMemo(() => ({ register, unregister }), [register, unregister]);\n\n // 合并外部 onClearAll 和内部的 clearAll\n const handleClearAll = React.useCallback(() => {\n clearAll();\n onClearAll?.();\n }, [clearAll, onClearAll]);\n\n return (\n <div className={classNames('common-filter-root', styles['common-filter-root'])}>\n {/* 筛选行 */}\n <div className={classNames('common-filter-container', styles['common-filter-container'])}>\n <span className={classNames('common-filter-label', styles['common-filter-label'])}>{label}</span>\n <FilterProvider ctx={filterCtx}>\n <div className={classNames('common-filter-content', styles['common-filter-content'])}>\n <div className={classNames('common-filter-items', styles['common-filter-items'])}>\n {list}\n {children}\n </div>\n {extra && (\n <div className={classNames('common-filter-extra', styles['common-filter-extra'])}>{extra}</div>\n )}\n </div>\n </FilterProvider>\n </div>\n\n {/* 已选择行 */}\n {selectedItems.length > 0 && (\n <div className={classNames('common-filter-selected', styles['common-filter-selected'])}>\n <div className={classNames('common-filter-selected-main', styles['common-filter-selected-main'])}>\n <span className={classNames('common-filter-selected-title', styles['common-filter-selected-title'])}>\n 您已选择\n </span>\n <Space size={[8, 8]} wrap className={classNames('common-filter-selected-tags', styles['common-filter-selected-tags'])}>\n {selectedItems.map((s) => {\n const { display, truncated } = truncateText(s.valueLabel, selectedTagMaxLength);\n const valueNode = truncated ? (\n <Tooltip title={s.valueLabel}>\n <span>{display}</span>\n </Tooltip>\n ) : (\n <span>{display}</span>\n );\n\n return (\n <SemanticTag key={s.key} color=\"primary\">\n <span className={classNames('common-filter-tag', styles['common-filter-tag'])}>\n <span\n className={classNames('common-filter-tag-label', styles['common-filter-tag-label'])}\n style={{ color: 'var(--font-color)' }}\n >\n {s.label}:\n </span>\n {valueNode}\n <X\n className={classNames(\n 'common-filter-tag-close',\n styles['common-filter-tag-close'],\n s.removable === false && styles['common-filter-tag-close-disabled'],\n )}\n onClick={(e) => {\n e.preventDefault();\n if (s.removable === false) return;\n s.onRemove();\n }}\n />\n </span>\n </SemanticTag>\n );\n })}\n </Space>\n </div>\n <Button\n type=\"link\"\n size=\"small\"\n onClick={handleClearAll}\n className={classNames('common-filter-clear-btn', styles['common-filter-clear-btn'])}\n >\n 清空全部\n </Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default CommonFilter;\nexport type { CommonFilterProps };\n"],"names":["DEFAULT_SELECTED_TAG_MAX_LENGTH","truncateText","text","maxLength","CommonFilter","children","list","extra","onClearAll","label","selectedTagMaxLength","selectedItems","register","unregister","clearAll","useFilterState","filterCtx","useMemo","handleClearAll","React","jsxs","classNames","styles","jsx","FilterProvider","Space","s","display","truncated","valueNode","Tooltip","SemanticTag","X","e","Button"],"mappings":"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"}
@@ -1,20 +1,21 @@
1
- const o = {
2
- "common-filter-root": "_common-filter-root_kdoz3_1",
3
- "common-filter-container": "_common-filter-container_kdoz3_6",
4
- "common-filter-label": "_common-filter-label_kdoz3_12",
5
- "common-filter-content": "_common-filter-content_kdoz3_19",
6
- "common-filter-items": "_common-filter-items_kdoz3_26",
7
- "common-filter-extra": "_common-filter-extra_kdoz3_34",
8
- "common-filter-selected": "_common-filter-selected_kdoz3_39",
9
- "common-filter-selected-main": "_common-filter-selected-main_kdoz3_46",
10
- "common-filter-selected-title": "_common-filter-selected-title_kdoz3_52",
11
- "common-filter-selected-tags": "_common-filter-selected-tags_kdoz3_58",
12
- "common-filter-tag": "_common-filter-tag_kdoz3_62",
13
- "common-filter-tag-label": "_common-filter-tag-label_kdoz3_68",
14
- "common-filter-tag-close": "_common-filter-tag-close_kdoz3_72",
15
- "common-filter-clear-btn": "_common-filter-clear-btn_kdoz3_82"
1
+ const e = {
2
+ "common-filter-root": "_common-filter-root_16e7m_1",
3
+ "common-filter-container": "_common-filter-container_16e7m_6",
4
+ "common-filter-label": "_common-filter-label_16e7m_12",
5
+ "common-filter-content": "_common-filter-content_16e7m_19",
6
+ "common-filter-items": "_common-filter-items_16e7m_26",
7
+ "common-filter-extra": "_common-filter-extra_16e7m_34",
8
+ "common-filter-selected": "_common-filter-selected_16e7m_39",
9
+ "common-filter-selected-main": "_common-filter-selected-main_16e7m_46",
10
+ "common-filter-selected-title": "_common-filter-selected-title_16e7m_52",
11
+ "common-filter-selected-tags": "_common-filter-selected-tags_16e7m_58",
12
+ "common-filter-tag": "_common-filter-tag_16e7m_62",
13
+ "common-filter-tag-label": "_common-filter-tag-label_16e7m_68",
14
+ "common-filter-tag-close": "_common-filter-tag-close_16e7m_72",
15
+ "common-filter-tag-close-disabled": "_common-filter-tag-close-disabled_16e7m_82",
16
+ "common-filter-clear-btn": "_common-filter-clear-btn_16e7m_88"
16
17
  };
17
18
  export {
18
- o as default
19
+ e as default
19
20
  };
20
21
  //# sourceMappingURL=style.module.scss.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -14,6 +14,8 @@ interface FilterSelectProps extends BaseFilterProps {
14
14
  searchable?: boolean;
15
15
  /** 是否多选 */
16
16
  multiple?: boolean;
17
+ /** 多选至少保留项数;达到下限时不允许移除已选标签 */
18
+ minSelection?: number;
17
19
  /** 人员选项:展示部门与联系方式 */
18
20
  variant?: 'default' | 'person';
19
21
  }
@@ -1,174 +1,196 @@
1
- import { jsxs as x, jsx as m } from "react/jsx-runtime";
2
- import { Check as Q, X as U } from "../../Icons/index.js";
3
- import { Input as W, Checkbox as Y, Space as Z } from "antd";
4
- import { useState as P, useRef as _, useMemo as j, useEffect as T } from "react";
5
- import K from "../../Form/PersonOptionRow/index.js";
6
- import V from "../FilterPopover/index.js";
7
- import { resolveFilterVisible as z } from "../types.js";
8
- import { useFilterRegister as ee } from "../useFilterState.js";
9
- import f from "./style.module.scss.js";
10
- import d from "classnames";
11
- const { Search: re } = W;
12
- function te(r) {
1
+ import { jsxs as N, jsx as v } from "react/jsx-runtime";
2
+ import { Check as W, X as Y } from "../../Icons/index.js";
3
+ import { Input as Z, Checkbox as _, Space as K } from "antd";
4
+ import { useState as D, useRef as V, useMemo as z, useEffect as B } from "react";
5
+ import ee from "../../Form/PersonOptionRow/index.js";
6
+ import re from "../FilterPopover/index.js";
7
+ import { resolveFilterVisible as E } from "../types.js";
8
+ import { useFilterRegister as te } from "../useFilterState.js";
9
+ import m from "./style.module.scss.js";
10
+ import h from "classnames";
11
+ const { Search: se } = Z;
12
+ function ne(r) {
13
13
  const t = [r.label];
14
14
  return r.departmentName && t.push(r.departmentName), t.join(" · ");
15
15
  }
16
- function se(r, t) {
17
- const i = t.toLowerCase();
18
- return [r.label, r.departmentName, r.email, r.phone, r.employeeId].filter(Boolean).some((c) => String(c).toLowerCase().includes(i));
16
+ function ce(r, t) {
17
+ const o = t.toLowerCase();
18
+ return [r.label, r.departmentName, r.email, r.phone, r.employeeId].filter(Boolean).some((l) => String(l).toLowerCase().includes(o));
19
19
  }
20
- function ne(r, t) {
20
+ function ie(r, t) {
21
21
  if (!(r != null && r.length) && !(t != null && t.length)) return !0;
22
22
  if (!r || !t || r.length !== t.length) return !1;
23
- const i = [...r].map(String).sort(), c = [...t].map(String).sort();
24
- return i.every((n, o) => n === c[o]);
23
+ const o = [...r].map(String).sort(), l = [...t].map(String).sort();
24
+ return o.every((c, d) => c === l[d]);
25
25
  }
26
- function B(r, t, i, c) {
27
- if (c) {
28
- const n = Array.isArray(r) ? r : r != null && r !== "" ? [r] : [];
29
- return i != null && i.length && ne(n, i) ? [] : n;
26
+ function I(r, t, o, l) {
27
+ if (l) {
28
+ const c = Array.isArray(r) ? r : r != null && r !== "" ? [r] : [];
29
+ return o != null && o.length && ie(c, o) ? [] : c;
30
30
  }
31
31
  if (!(t !== void 0 && r === t))
32
32
  return r;
33
33
  }
34
- function ie(r, t, i, c) {
35
- if (i) {
36
- const o = r || [];
37
- return o.length > 0 ? o.map((g) => {
34
+ function oe(r, t, o, l) {
35
+ if (o) {
36
+ const d = r || [];
37
+ return d.length > 0 ? d.map((u) => {
38
38
  var S;
39
- return ((S = t.find((s) => s.value === g)) == null ? void 0 : S.label) ?? String(g);
39
+ return ((S = t.find((s) => String(s.value) === String(u))) == null ? void 0 : S.label) ?? String(u);
40
40
  }).join("、") : "";
41
41
  }
42
42
  if (r == null) return "";
43
- const n = t.find((o) => o.value === r);
44
- return n ? c ? te(n) : n.label : String(r);
43
+ const c = t.find((d) => String(d.value) === String(r));
44
+ return c ? l ? ne(c) : c.label : String(r);
45
45
  }
46
- const xe = ({
46
+ const Ne = ({
47
47
  filterKey: r,
48
48
  label: t,
49
- options: i = [],
50
- value: c,
51
- onChange: n,
52
- defaultValue: o,
53
- defaultValues: g,
49
+ options: o = [],
50
+ value: l,
51
+ onChange: c,
52
+ defaultValue: d,
53
+ defaultValues: u,
54
54
  searchable: S = !1,
55
55
  multiple: s = !1,
56
- variant: E = "default",
57
- active: I,
58
- hidden: A,
59
- display: C
56
+ minSelection: g,
57
+ variant: M = "default",
58
+ active: q,
59
+ hidden: C,
60
+ display: O
60
61
  }) => {
61
- const u = E === "person", [M, N] = P(!1), [k, b] = P(""), h = B(c, o, g, s), [l, p] = P(
62
- h ?? (s ? [] : void 0)
63
- ), L = ee(), w = _(n);
64
- w.current = n;
65
- const D = j(
66
- () => () => {
67
- var e;
68
- (e = w.current) == null || e.call(w, void 0);
69
- },
70
- []
71
- ), F = () => {
72
- p(h ?? (s ? [] : void 0)), b("");
62
+ const x = M === "person", [X, b] = D(!1), [y, R] = D(""), n = I(l, d, u, s), [a, k] = D(
63
+ n ?? (s ? [] : void 0)
64
+ ), L = te(), w = V(c);
65
+ w.current = c;
66
+ const F = z(() => {
67
+ const e = Array.isArray(n) ? n : n != null && n !== "" ? [n] : [], i = !s || g == null || e.length > g;
68
+ return () => {
69
+ var f;
70
+ i && ((f = w.current) == null || f.call(w, void 0));
71
+ };
72
+ }, [n, g, s]), j = () => {
73
+ k(n ?? (s ? [] : void 0)), R("");
73
74
  };
74
- T(() => {
75
- const e = B(c, o, g, s);
76
- p(e ?? (s ? [] : void 0)), (e == null || Array.isArray(e) && e.length === 0) && b("");
77
- }, [c, o, g, s]);
78
- const y = j(
79
- () => ie(h, i, s, u),
80
- [i, h, s, u]
75
+ B(() => {
76
+ const e = I(l, d, u, s);
77
+ k(e ?? (s ? [] : void 0)), (e == null || Array.isArray(e) && e.length === 0) && R("");
78
+ }, [l, d, u, s]);
79
+ const P = z(
80
+ () => oe(n, o, s, x),
81
+ [o, n, s, x]
81
82
  );
82
- if (T(() => {
83
+ if (B(() => {
83
84
  if (!L) return;
84
- if (!z({ display: C, hidden: A }, { filterKey: r, label: t, value: c })) {
85
+ if (!E({ display: O, hidden: C }, { filterKey: r, label: t, value: l })) {
85
86
  L.unregister(r);
86
87
  return;
87
88
  }
88
- y ? L.register(r, {
89
- label: t,
90
- valueLabel: y,
91
- onRemove: D
92
- }) : L.unregister(r);
93
- }, [y, r, t, A, C, D]), !z({ display: C, hidden: A }, { filterKey: r, label: t, value: c })) return null;
94
- const R = k ? i.filter(
95
- (e) => u ? se(e, k) : e.label.toLowerCase().includes(k.toLowerCase())
96
- ) : i, q = () => {
97
- n == null || n(l), N(!1);
98
- }, X = () => {
99
- F(), N(!1);
100
- }, $ = (e) => {
101
- !e && s && F(), N(e);
102
- }, G = (e) => {
89
+ if (P) {
90
+ const i = Array.isArray(n) ? n : n != null && n !== "" ? [n] : [], f = !s || g == null || i.length > g;
91
+ L.register(r, {
92
+ label: t,
93
+ valueLabel: P,
94
+ onRemove: F,
95
+ removable: f
96
+ });
97
+ } else
98
+ L.unregister(r);
99
+ }, [P, r, t, C, O, F]), !E({ display: O, hidden: C }, { filterKey: r, label: t, value: l })) return null;
100
+ const T = y ? o.filter(
101
+ (e) => x ? ce(e, y) : e.label.toLowerCase().includes(y.toLowerCase())
102
+ ) : o, $ = () => {
103
+ c == null || c(a), b(!1);
104
+ }, G = () => {
105
+ j(), b(!1);
106
+ }, H = (e) => {
107
+ !e && s && j(), b(e);
108
+ }, J = (e) => {
103
109
  if (!s) {
104
- const a = o !== void 0 && e === o;
105
- let v;
106
- l === e || a ? v = void 0 : v = e, p(v), n == null || n(v), N(!1);
110
+ const i = d !== void 0 && e === d;
111
+ let f;
112
+ a === e || i ? f = void 0 : f = e, k(f), c == null || c(f), b(!1);
107
113
  }
108
- }, O = (e) => {
109
- const a = l || [], v = a.includes(e) ? a.filter((J) => J !== e) : [...a, e];
110
- p(v);
111
- }, H = s ? Array.isArray(h) && h.length > 0 : h != null && h !== "";
112
- return /* @__PURE__ */ x(
113
- V,
114
+ }, p = (e) => {
115
+ const i = a || [];
116
+ if (i.includes(e) && g != null && i.length <= g)
117
+ return;
118
+ const f = i.includes(e) ? i.filter((A) => A !== e) : [...i, e];
119
+ k(f);
120
+ }, Q = s ? Array.isArray(n) && n.length > 0 : n != null && n !== "";
121
+ return /* @__PURE__ */ N(
122
+ re,
114
123
  {
115
124
  label: t,
116
- active: I || H,
117
- open: M,
118
- onOpenChange: $,
119
- onConfirm: s ? q : void 0,
120
- onReset: s ? X : void 0,
125
+ active: q || Q,
126
+ open: X,
127
+ onOpenChange: H,
128
+ onConfirm: s ? $ : void 0,
129
+ onReset: s ? G : void 0,
121
130
  children: [
122
- S && /* @__PURE__ */ m(
123
- re,
131
+ S && /* @__PURE__ */ v(
132
+ se,
124
133
  {
125
134
  placeholder: `搜索${t}`,
126
135
  allowClear: !0,
127
136
  size: "middle",
128
- className: d("filter-select-search", f["filter-select-search"]),
129
- value: k,
130
- onChange: (e) => b(e.target.value)
137
+ className: h("filter-select-search", m["filter-select-search"]),
138
+ value: y,
139
+ onChange: (e) => R(e.target.value)
131
140
  }
132
141
  ),
133
- /* @__PURE__ */ x("div", { className: d("filter-select-options", f["filter-select-options"]), children: [
134
- R.map((e) => /* @__PURE__ */ x(
142
+ /* @__PURE__ */ N("div", { className: h("filter-select-options", m["filter-select-options"]), children: [
143
+ T.map((e) => /* @__PURE__ */ N(
135
144
  "div",
136
145
  {
137
- className: d(
146
+ className: h(
138
147
  "filter-select-option",
139
- f["filter-select-option"],
140
- !s && l === e.value && d("filter-select-option-selected", f["filter-select-option-selected"])
148
+ m["filter-select-option"],
149
+ !s && a === e.value && h("filter-select-option-selected", m["filter-select-option-selected"])
141
150
  ),
142
- onClick: () => s ? O(e.value) : G(e.value),
151
+ onClick: () => s ? p(e.value) : J(e.value),
143
152
  children: [
144
- s && /* @__PURE__ */ m(
145
- Y,
153
+ s && /* @__PURE__ */ v(
154
+ _,
146
155
  {
147
- checked: l == null ? void 0 : l.includes(e.value),
148
- onChange: () => O(e.value),
149
- onClick: (a) => a.stopPropagation()
156
+ checked: a == null ? void 0 : a.includes(e.value),
157
+ onChange: () => p(e.value),
158
+ onClick: (i) => i.stopPropagation()
150
159
  }
151
160
  ),
152
- u ? /* @__PURE__ */ m(K, { option: e }) : /* @__PURE__ */ m("span", { children: e.label }),
153
- !s && !u && l === e.value && /* @__PURE__ */ m(Q, { className: d("filter-select-option-check", f["filter-select-option-check"]) })
161
+ x ? /* @__PURE__ */ v(ee, { option: e }) : /* @__PURE__ */ v("span", { children: e.label }),
162
+ !s && !x && a === e.value && /* @__PURE__ */ v(W, { className: h("filter-select-option-check", m["filter-select-option-check"]) })
154
163
  ]
155
164
  },
156
165
  String(e.value)
157
166
  )),
158
- R.length === 0 && /* @__PURE__ */ m("div", { className: d("filter-select-empty", f["filter-select-empty"]), children: "暂无数据" })
167
+ T.length === 0 && /* @__PURE__ */ v("div", { className: h("filter-select-empty", m["filter-select-empty"]), children: "暂无数据" })
159
168
  ] }),
160
- s && (l == null ? void 0 : l.length) > 0 && /* @__PURE__ */ x("div", { className: d("filter-select-selected-bar", f["filter-select-selected-bar"]), children: [
161
- /* @__PURE__ */ m("div", { className: d("filter-select-selected-label", f["filter-select-selected-label"]), children: "已选:" }),
162
- /* @__PURE__ */ m(Z, { size: [4, 4], wrap: !0, children: l.map((e) => {
163
- const a = i.find((v) => v.value === e);
164
- return /* @__PURE__ */ x(
169
+ s && (a == null ? void 0 : a.length) > 0 && /* @__PURE__ */ N("div", { className: h("filter-select-selected-bar", m["filter-select-selected-bar"]), children: [
170
+ /* @__PURE__ */ v("div", { className: h("filter-select-selected-label", m["filter-select-selected-label"]), children: "已选:" }),
171
+ /* @__PURE__ */ v(K, { size: [4, 4], wrap: !0, children: a.map((e) => {
172
+ const i = o.find((U) => String(U.value) === String(e)), f = a || [], A = g == null || f.length > g;
173
+ return /* @__PURE__ */ N(
165
174
  "span",
166
175
  {
167
- className: d("filter-select-selected-tag", f["filter-select-selected-tag"]),
168
- onClick: () => O(e),
176
+ className: h(
177
+ "filter-select-selected-tag",
178
+ m["filter-select-selected-tag"],
179
+ !A && m["filter-select-selected-tag-disabled"]
180
+ ),
181
+ onClick: () => A && p(e),
169
182
  children: [
170
- (a == null ? void 0 : a.label) ?? String(e),
171
- /* @__PURE__ */ m(U, { className: d("filter-select-selected-remove", f["filter-select-selected-remove"]) })
183
+ (i == null ? void 0 : i.label) ?? String(e),
184
+ /* @__PURE__ */ v(
185
+ Y,
186
+ {
187
+ className: h(
188
+ "filter-select-selected-remove",
189
+ m["filter-select-selected-remove"],
190
+ !A && m["filter-select-selected-remove-disabled"]
191
+ )
192
+ }
193
+ )
172
194
  ]
173
195
  },
174
196
  String(e)
@@ -180,6 +202,6 @@ const xe = ({
180
202
  );
181
203
  };
182
204
  export {
183
- xe as default
205
+ Ne as default
184
206
  };
185
207
  //# sourceMappingURL=index.js.map