@hkyhy/marsun-components-core 0.1.46 → 0.1.49

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 (62) hide show
  1. package/dist/_virtual/zh-cn.js +3 -0
  2. package/dist/_virtual/zh-cn.js.map +1 -0
  3. package/dist/_virtual/zh-cn2.js +5 -0
  4. package/dist/_virtual/zh-cn2.js.map +1 -0
  5. package/dist/components/Filter/FilterDatePicker/index.js +10 -9
  6. package/dist/components/Filter/FilterDatePicker/index.js.map +1 -1
  7. package/dist/components/Filter/FilterDateRange/index.js +3 -2
  8. package/dist/components/Filter/FilterDateRange/index.js.map +1 -1
  9. package/dist/components/Form/index.d.ts +1 -1
  10. package/dist/components/Form/kneFormInfo.d.ts +2 -0
  11. package/dist/components/Form/kneFormInfo.js +18 -17
  12. package/dist/components/Form/kneFormInfo.js.map +1 -1
  13. package/dist/components/OrgTree/OrgTree.js +52 -43
  14. package/dist/components/OrgTree/OrgTree.js.map +1 -1
  15. package/dist/components/OrgTree/style.module.scss.js +5 -5
  16. package/dist/components/PermissionBindPanel/PermissionBindPanel.d.ts +4 -1
  17. package/dist/components/PermissionBindPanel/PermissionBindPanel.js +121 -117
  18. package/dist/components/PermissionBindPanel/PermissionBindPanel.js.map +1 -1
  19. package/dist/components/ReactFilter/common/TypeDateRangePickerField/index.js +31 -30
  20. package/dist/components/ReactFilter/common/TypeDateRangePickerField/index.js.map +1 -1
  21. package/dist/components/ReactFilter/fields/DatePickerFilterItem.js +7 -6
  22. package/dist/components/ReactFilter/fields/DatePickerFilterItem.js.map +1 -1
  23. package/dist/components/ReactFilter/fields/DateRangePickerFilterItem.js +3 -2
  24. package/dist/components/ReactFilter/fields/DateRangePickerFilterItem.js.map +1 -1
  25. package/dist/components/ReactFilter/fields/TypeDateRangePickerFilterItem.js +11 -10
  26. package/dist/components/ReactFilter/fields/TypeDateRangePickerFilterItem.js.map +1 -1
  27. package/dist/components/SegmentedRadio/SegmentedRadio.d.ts +29 -0
  28. package/dist/components/SegmentedRadio/SegmentedRadio.js +48 -0
  29. package/dist/components/SegmentedRadio/SegmentedRadio.js.map +1 -0
  30. package/dist/components/SegmentedRadio/index.d.ts +2 -0
  31. package/dist/components/SegmentedRadio/style.module.scss.js +9 -0
  32. package/dist/components/SegmentedRadio/style.module.scss.js.map +1 -0
  33. package/dist/components/Stat/StatCard/index.d.ts +4 -0
  34. package/dist/components/Stat/StatCard/index.js +45 -29
  35. package/dist/components/Stat/StatCard/index.js.map +1 -1
  36. package/dist/components/Stat/StatCardList.d.ts +0 -2
  37. package/dist/components/Stat/StatCardList.js.map +1 -1
  38. package/dist/components/Tag/Tags/index.d.ts +2 -2
  39. package/dist/components/Tag/Tags/index.js +37 -22
  40. package/dist/components/Tag/Tags/index.js.map +1 -1
  41. package/dist/components/Tag/Tags/style.module.scss.js +3 -3
  42. package/dist/components/TooltipInfo/TooltipInfo.js +14 -8
  43. package/dist/components/TooltipInfo/TooltipInfo.js.map +1 -1
  44. package/dist/components/Upload/index.d.ts +6 -23
  45. package/dist/components/Upload/index.js +254 -141
  46. package/dist/components/Upload/index.js.map +1 -1
  47. package/dist/components/Upload/style.module.scss.js +22 -15
  48. package/dist/components/Upload/style.module.scss.js.map +1 -1
  49. package/dist/components/index.d.ts +2 -1
  50. package/dist/index.d.ts +2 -1
  51. package/dist/index.js +580 -576
  52. package/dist/index.js.map +1 -1
  53. package/dist/marsun-components-core.css +1 -1
  54. package/dist/node_modules/dayjs/locale/zh-cn.js +25 -0
  55. package/dist/node_modules/dayjs/locale/zh-cn.js.map +1 -0
  56. package/dist/provider/MarsunCoreProvider.js +10 -9
  57. package/dist/provider/MarsunCoreProvider.js.map +1 -1
  58. package/dist/styles/global.css +1 -1
  59. package/dist/utils/ensureDayjsZhCn.d.ts +0 -0
  60. package/dist/utils/ensureDayjsZhCn.js +4 -0
  61. package/dist/utils/ensureDayjsZhCn.js.map +1 -0
  62. package/package.json +6 -2
@@ -7,60 +7,61 @@ import S from "classnames";
7
7
  import u from "./style.module.scss.js";
8
8
  import K from "../../hooks/useFilterPopupContainer.js";
9
9
  import { MOBILE_POPUP_Z_INDEX as Q } from "../../constants/mobilePopup.js";
10
+ import "../../../../utils/ensureDayjsZhCn.js";
10
11
  import W from "../../../../node_modules/@kne/react-intl/node_modules/react-intl/lib/src/components/useIntl.js";
11
12
  import "../../../../node_modules/@kne/react-intl/node_modules/react-intl/lib/index.js";
12
- const $ = "react-filter-field-mobile-popup", rt = ({
13
+ const $ = "react-filter-field-mobile-popup", pt = ({
13
14
  value: b,
14
- onChange: r,
15
+ onChange: d,
15
16
  defaultValue: L,
16
17
  shortcuts: F = !0,
17
18
  shortcutOptions: N,
18
- ...l
19
+ ...i
19
20
  }) => {
20
21
  var M, x, A, P, E, I;
21
- const { formatMessage: i } = W(), { isMobile: n, fixedModeClass: R, getPopupContainer: D } = K(), O = S(
22
+ const { formatMessage: l } = W(), { isMobile: n, fixedModeClass: R, getPopupContainer: D } = K(), O = S(
22
23
  u["field-item-mobile-popup"],
23
24
  $,
24
25
  R
25
26
  ), p = n ? { zIndex: Q } : void 0, T = /* @__PURE__ */ new Map([
26
- ["date", i({ id: "customTime" })],
27
- ["month", i({ id: "monthly" })],
28
- ["week", i({ id: "weekly" })]
27
+ ["date", l({ id: "customTime" })],
28
+ ["month", l({ id: "monthly" })],
29
+ ["week", l({ id: "weekly" })]
29
30
  ]), B = j(
30
31
  () => [
31
32
  {
32
- label: i({ id: "last7Days" }),
33
+ label: l({ id: "last7Days" }),
33
34
  getValue: () => [o().subtract(7, "day").startOf("day"), o().endOf("day")]
34
35
  },
35
36
  {
36
- label: i({ id: "thisMonth" }),
37
+ label: l({ id: "thisMonth" }),
37
38
  getValue: () => [o().startOf("month"), o().endOf("month")]
38
39
  },
39
40
  {
40
- label: i({ id: "last3Months" }),
41
+ label: l({ id: "last3Months" }),
41
42
  getValue: () => [o().subtract(3, "month").startOf("day"), o().endOf("day")]
42
43
  },
43
44
  {
44
- label: i({ id: "thisYear" }),
45
+ label: l({ id: "thisYear" }),
45
46
  getValue: () => [o().startOf("year"), o().endOf("day")]
46
47
  },
47
48
  {
48
- label: i({ id: "fullYear" }),
49
+ label: l({ id: "fullYear" }),
49
50
  getValue: () => [o().startOf("year"), o().endOf("year")]
50
51
  }
51
52
  ],
52
- [i]
53
+ [l]
53
54
  ), c = N !== void 0 ? N : F ? B : null, h = b !== void 0, v = J(L || { type: "date", value: null }), e = h ? b : v.current, m = g(
54
55
  (t) => {
55
- h || (v.current = typeof t == "function" ? t(v.current) : t), r == null || r(typeof t == "function" ? t(e) : t);
56
+ h || (v.current = typeof t == "function" ? t(v.current) : t), d == null || d(typeof t == "function" ? t(e) : t);
56
57
  },
57
- [h, r, e]
58
+ [h, d, e]
58
59
  ), C = g(
59
60
  (t) => {
60
- const [s, d] = t.getValue(), a = "date";
61
+ const [s, r] = t.getValue(), a = "date";
61
62
  m({
62
63
  type: a,
63
- value: [s.startOf(a).toDate(), d.endOf(a).toDate()]
64
+ value: [s.startOf(a).toDate(), r.endOf(a).toDate()]
64
65
  });
65
66
  },
66
67
  [m]
@@ -68,7 +69,7 @@ const $ = "react-filter-field-mobile-popup", rt = ({
68
69
  (t) => {
69
70
  if (!(e != null && e.value) || !Array.isArray(e.value) || e.value.length !== 2)
70
71
  return !1;
71
- const [s, d] = t.getValue(), a = (e == null ? void 0 : e.type) || "date", f = o(e.value[0]).startOf(a), Y = o(e.value[1]).endOf(a), z = s.startOf(a), X = d.endOf(a);
72
+ const [s, r] = t.getValue(), a = (e == null ? void 0 : e.type) || "date", f = o(e.value[0]).startOf(a), Y = o(e.value[1]).endOf(a), z = s.startOf(a), X = r.endOf(a);
72
73
  return f.isSame(z, a) && Y.isSame(X, a);
73
74
  },
74
75
  [e]
@@ -100,10 +101,10 @@ const $ = "react-filter-field-mobile-popup", rt = ({
100
101
  var f;
101
102
  if (!((f = s == null ? void 0 : s.value) != null && f.length))
102
103
  return { value: null, type: t || "date" };
103
- const d = o(s.value[0]), a = o(s.value[1]);
104
+ const r = o(s.value[0]), a = o(s.value[1]);
104
105
  return {
105
106
  value: [
106
- d.isValid() ? d.startOf(t || "date").toDate() : null,
107
+ r.isValid() ? r.startOf(t || "date").toDate() : null,
107
108
  a.isValid() ? a.endOf(t || "date").toDate() : null
108
109
  ],
109
110
  type: t || "date"
@@ -119,22 +120,22 @@ const $ = "react-filter-field-mobile-popup", rt = ({
119
120
  /* @__PURE__ */ y(
120
121
  H.RangePicker,
121
122
  {
122
- ...l,
123
+ ...i,
123
124
  getPopupContainer: D,
124
125
  classNames: n ? {
125
- ...l.classNames,
126
+ ...i.classNames,
126
127
  popup: {
127
- ...(M = l.classNames) == null ? void 0 : M.popup,
128
- root: S((A = (x = l.classNames) == null ? void 0 : x.popup) == null ? void 0 : A.root, O)
128
+ ...(M = i.classNames) == null ? void 0 : M.popup,
129
+ root: S((A = (x = i.classNames) == null ? void 0 : x.popup) == null ? void 0 : A.root, O)
129
130
  }
130
- } : l.classNames,
131
+ } : i.classNames,
131
132
  styles: n ? {
132
- ...l.styles,
133
+ ...i.styles,
133
134
  popup: {
134
- ...(P = l.styles) == null ? void 0 : P.popup,
135
- root: Object.assign({}, (I = (E = l.styles) == null ? void 0 : E.popup) == null ? void 0 : I.root, p)
135
+ ...(P = i.styles) == null ? void 0 : P.popup,
136
+ root: Object.assign({}, (I = (E = i.styles) == null ? void 0 : E.popup) == null ? void 0 : I.root, p)
136
137
  }
137
- } : l.styles,
138
+ } : i.styles,
138
139
  popupStyle: p,
139
140
  picker: (e == null ? void 0 : e.type) || "date",
140
141
  value: Array.isArray(e == null ? void 0 : e.value) && e.value.length === 2 ? e.value.map((t) => t && o(t)) : null,
@@ -153,6 +154,6 @@ const $ = "react-filter-field-mobile-popup", rt = ({
153
154
  ] });
154
155
  };
155
156
  export {
156
- rt as default
157
+ pt as default
157
158
  };
158
159
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/ReactFilter/common/TypeDateRangePickerField/index.jsx"],"sourcesContent":["// @ts-nocheck\nimport { DatePicker, Select, Space, Flex } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { useRef, useCallback, useMemo } from 'react';\nimport dayjs from 'dayjs';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\nimport useFilterPopupContainer from '../../hooks/useFilterPopupContainer';\nimport { MOBILE_POPUP_Z_INDEX } from '../../constants/mobilePopup';\n\nconst FIELD_MOBILE_POPUP_CLASS = 'react-filter-field-mobile-popup';\n\nconst TypeDateRangePickerField = ({\n value: valueProp,\n onChange: onChangeProp,\n defaultValue,\n shortcuts = true,\n shortcutOptions,\n ...props\n}) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n const { isMobile, fixedModeClass, getPopupContainer } = useFilterPopupContainer();\n const nestedPopupClassName = classnames(\n style['field-item-mobile-popup'],\n FIELD_MOBILE_POPUP_CLASS,\n fixedModeClass,\n );\n const nestedPopupStyle = isMobile ? { zIndex: MOBILE_POPUP_Z_INDEX } : undefined;\n\n const typeList = new Map([\n ['date', formatMessage({ id: 'customTime' })],\n ['month', formatMessage({ id: 'monthly' })],\n ['week', formatMessage({ id: 'weekly' })],\n ]);\n\n const defaultShortcuts = useMemo(\n () => [\n {\n label: formatMessage({ id: 'last7Days' }),\n getValue: () => [dayjs().subtract(7, 'day').startOf('day'), dayjs().endOf('day')],\n },\n {\n label: formatMessage({ id: 'thisMonth' }),\n getValue: () => [dayjs().startOf('month'), dayjs().endOf('month')],\n },\n {\n label: formatMessage({ id: 'last3Months' }),\n getValue: () => [dayjs().subtract(3, 'month').startOf('day'), dayjs().endOf('day')],\n },\n {\n label: formatMessage({ id: 'thisYear' }),\n getValue: () => [dayjs().startOf('year'), dayjs().endOf('day')],\n },\n {\n label: formatMessage({ id: 'fullYear' }),\n getValue: () => [dayjs().startOf('year'), dayjs().endOf('year')],\n },\n ],\n [formatMessage],\n );\n\n const currentShortcuts =\n shortcutOptions !== undefined ? shortcutOptions : shortcuts ? defaultShortcuts : null;\n\n const isControlled = valueProp !== undefined;\n const innerValueRef = useRef(defaultValue || { type: 'date', value: null });\n\n const value = isControlled ? valueProp : innerValueRef.current;\n\n const onChange = useCallback(\n (newValue) => {\n if (!isControlled) {\n innerValueRef.current =\n typeof newValue === 'function' ? newValue(innerValueRef.current) : newValue;\n }\n onChangeProp?.(typeof newValue === 'function' ? newValue(value) : newValue);\n },\n [isControlled, onChangeProp, value],\n );\n\n const handleShortcutClick = useCallback(\n (shortcut) => {\n const [start, end] = shortcut.getValue();\n const type = 'date';\n onChange({\n type,\n value: [start.startOf(type).toDate(), end.endOf(type).toDate()],\n });\n },\n [onChange],\n );\n\n const isShortcutActive = useCallback(\n (shortcut) => {\n if (!value?.value || !Array.isArray(value.value) || value.value.length !== 2) {\n return false;\n }\n const [start, end] = shortcut.getValue();\n const type = value?.type || 'date';\n const valueStart = dayjs(value.value[0]).startOf(type);\n const valueEnd = dayjs(value.value[1]).endOf(type);\n const shortcutStart = start.startOf(type);\n const shortcutEnd = end.endOf(type);\n return valueStart.isSame(shortcutStart, type) && valueEnd.isSame(shortcutEnd, type);\n },\n [value],\n );\n\n const renderShortcuts = useMemo(() => {\n if (!currentShortcuts || currentShortcuts.length === 0) {\n return null;\n }\n return (\n <div className={style['shortcuts-container']}>\n {currentShortcuts.map((shortcut, index) => (\n <span\n key={index}\n className={classnames(style['shortcut-item'], {\n [style['is-active']]: isShortcutActive(shortcut),\n })}\n onClick={() => handleShortcutClick(shortcut)}\n >\n {shortcut.label}\n </span>\n ))}\n </div>\n );\n }, [currentShortcuts, handleShortcutClick, isShortcutActive]);\n\n return (\n <Flex vertical gap={0}>\n <Space.Compact>\n <Select\n style={{ width: '120px' }}\n getPopupContainer={getPopupContainer}\n popupClassName={isMobile ? nestedPopupClassName : undefined}\n classNames={isMobile ? { popup: { root: nestedPopupClassName } } : undefined}\n popupStyle={nestedPopupStyle}\n styles={isMobile ? { popup: { root: nestedPopupStyle } } : undefined}\n value={value?.type || 'date'}\n onChange={(typeValue) => {\n onChange((currentValue) => {\n if (!currentValue?.value?.length) {\n return { value: null, type: typeValue || 'date' };\n }\n const startTime = dayjs(currentValue.value[0]);\n const endTime = dayjs(currentValue.value[1]);\n return {\n value: [\n startTime.isValid() ? startTime.startOf(typeValue || 'date').toDate() : null,\n endTime.isValid() ? endTime.endOf(typeValue || 'date').toDate() : null,\n ],\n type: typeValue || 'date',\n };\n });\n }}\n options={Array.from(typeList).map(([val, label]) => ({\n label,\n value: val,\n }))}\n />\n <DatePicker.RangePicker\n {...props}\n getPopupContainer={getPopupContainer}\n classNames={\n isMobile\n ? {\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, nestedPopupClassName),\n },\n }\n : props.classNames\n }\n styles={\n isMobile\n ? {\n ...props.styles,\n popup: {\n ...props.styles?.popup,\n root: Object.assign({}, props.styles?.popup?.root, nestedPopupStyle),\n },\n }\n : props.styles\n }\n popupStyle={nestedPopupStyle}\n picker={value?.type || 'date'}\n value={\n Array.isArray(value?.value) && value.value.length === 2\n ? value.value.map((item) => item && dayjs(item))\n : null\n }\n onChange={(dateValue) => {\n onChange((currentValue) => {\n return Object.assign({ type: 'date' }, currentValue, {\n value:\n dateValue && dateValue[0] && dateValue[1]\n ? [\n dateValue[0].startOf(currentValue?.type || 'date').toDate(),\n dateValue[1].endOf(currentValue?.type || 'date').toDate(),\n ]\n : null,\n });\n });\n }}\n />\n </Space.Compact>\n {renderShortcuts}\n </Flex>\n );\n};\n\nexport default TypeDateRangePickerField;\n"],"names":["FIELD_MOBILE_POPUP_CLASS","TypeDateRangePickerField","valueProp","onChangeProp","defaultValue","shortcuts","shortcutOptions","props","formatMessage","useIntl","isMobile","fixedModeClass","getPopupContainer","useFilterPopupContainer","nestedPopupClassName","classnames","style","nestedPopupStyle","MOBILE_POPUP_Z_INDEX","typeList","defaultShortcuts","useMemo","dayjs","currentShortcuts","isControlled","innerValueRef","useRef","value","onChange","useCallback","newValue","handleShortcutClick","shortcut","start","end","type","isShortcutActive","valueStart","valueEnd","shortcutStart","shortcutEnd","renderShortcuts","jsx","index","jsxs","Flex","Space","Select","typeValue","currentValue","_a","startTime","endTime","val","label","DatePicker","_c","_b","_d","_f","_e","item","dateValue"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/ReactFilter/common/TypeDateRangePickerField/index.jsx"],"sourcesContent":["// @ts-nocheck\nimport { DatePicker, Select, Space, Flex } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { useRef, useCallback, useMemo } from 'react';\nimport dayjs from 'dayjs';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\nimport useFilterPopupContainer from '../../hooks/useFilterPopupContainer';\nimport { MOBILE_POPUP_Z_INDEX } from '../../constants/mobilePopup';\nimport '@/utils/ensureDayjsZhCn';\n\nconst FIELD_MOBILE_POPUP_CLASS = 'react-filter-field-mobile-popup';\n\nconst TypeDateRangePickerField = ({\n value: valueProp,\n onChange: onChangeProp,\n defaultValue,\n shortcuts = true,\n shortcutOptions,\n ...props\n}) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n const { isMobile, fixedModeClass, getPopupContainer } = useFilterPopupContainer();\n const nestedPopupClassName = classnames(\n style['field-item-mobile-popup'],\n FIELD_MOBILE_POPUP_CLASS,\n fixedModeClass,\n );\n const nestedPopupStyle = isMobile ? { zIndex: MOBILE_POPUP_Z_INDEX } : undefined;\n\n const typeList = new Map([\n ['date', formatMessage({ id: 'customTime' })],\n ['month', formatMessage({ id: 'monthly' })],\n ['week', formatMessage({ id: 'weekly' })],\n ]);\n\n const defaultShortcuts = useMemo(\n () => [\n {\n label: formatMessage({ id: 'last7Days' }),\n getValue: () => [dayjs().subtract(7, 'day').startOf('day'), dayjs().endOf('day')],\n },\n {\n label: formatMessage({ id: 'thisMonth' }),\n getValue: () => [dayjs().startOf('month'), dayjs().endOf('month')],\n },\n {\n label: formatMessage({ id: 'last3Months' }),\n getValue: () => [dayjs().subtract(3, 'month').startOf('day'), dayjs().endOf('day')],\n },\n {\n label: formatMessage({ id: 'thisYear' }),\n getValue: () => [dayjs().startOf('year'), dayjs().endOf('day')],\n },\n {\n label: formatMessage({ id: 'fullYear' }),\n getValue: () => [dayjs().startOf('year'), dayjs().endOf('year')],\n },\n ],\n [formatMessage],\n );\n\n const currentShortcuts =\n shortcutOptions !== undefined ? shortcutOptions : shortcuts ? defaultShortcuts : null;\n\n const isControlled = valueProp !== undefined;\n const innerValueRef = useRef(defaultValue || { type: 'date', value: null });\n\n const value = isControlled ? valueProp : innerValueRef.current;\n\n const onChange = useCallback(\n (newValue) => {\n if (!isControlled) {\n innerValueRef.current =\n typeof newValue === 'function' ? newValue(innerValueRef.current) : newValue;\n }\n onChangeProp?.(typeof newValue === 'function' ? newValue(value) : newValue);\n },\n [isControlled, onChangeProp, value],\n );\n\n const handleShortcutClick = useCallback(\n (shortcut) => {\n const [start, end] = shortcut.getValue();\n const type = 'date';\n onChange({\n type,\n value: [start.startOf(type).toDate(), end.endOf(type).toDate()],\n });\n },\n [onChange],\n );\n\n const isShortcutActive = useCallback(\n (shortcut) => {\n if (!value?.value || !Array.isArray(value.value) || value.value.length !== 2) {\n return false;\n }\n const [start, end] = shortcut.getValue();\n const type = value?.type || 'date';\n const valueStart = dayjs(value.value[0]).startOf(type);\n const valueEnd = dayjs(value.value[1]).endOf(type);\n const shortcutStart = start.startOf(type);\n const shortcutEnd = end.endOf(type);\n return valueStart.isSame(shortcutStart, type) && valueEnd.isSame(shortcutEnd, type);\n },\n [value],\n );\n\n const renderShortcuts = useMemo(() => {\n if (!currentShortcuts || currentShortcuts.length === 0) {\n return null;\n }\n return (\n <div className={style['shortcuts-container']}>\n {currentShortcuts.map((shortcut, index) => (\n <span\n key={index}\n className={classnames(style['shortcut-item'], {\n [style['is-active']]: isShortcutActive(shortcut),\n })}\n onClick={() => handleShortcutClick(shortcut)}\n >\n {shortcut.label}\n </span>\n ))}\n </div>\n );\n }, [currentShortcuts, handleShortcutClick, isShortcutActive]);\n\n return (\n <Flex vertical gap={0}>\n <Space.Compact>\n <Select\n style={{ width: '120px' }}\n getPopupContainer={getPopupContainer}\n popupClassName={isMobile ? nestedPopupClassName : undefined}\n classNames={isMobile ? { popup: { root: nestedPopupClassName } } : undefined}\n popupStyle={nestedPopupStyle}\n styles={isMobile ? { popup: { root: nestedPopupStyle } } : undefined}\n value={value?.type || 'date'}\n onChange={(typeValue) => {\n onChange((currentValue) => {\n if (!currentValue?.value?.length) {\n return { value: null, type: typeValue || 'date' };\n }\n const startTime = dayjs(currentValue.value[0]);\n const endTime = dayjs(currentValue.value[1]);\n return {\n value: [\n startTime.isValid() ? startTime.startOf(typeValue || 'date').toDate() : null,\n endTime.isValid() ? endTime.endOf(typeValue || 'date').toDate() : null,\n ],\n type: typeValue || 'date',\n };\n });\n }}\n options={Array.from(typeList).map(([val, label]) => ({\n label,\n value: val,\n }))}\n />\n <DatePicker.RangePicker\n {...props}\n getPopupContainer={getPopupContainer}\n classNames={\n isMobile\n ? {\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, nestedPopupClassName),\n },\n }\n : props.classNames\n }\n styles={\n isMobile\n ? {\n ...props.styles,\n popup: {\n ...props.styles?.popup,\n root: Object.assign({}, props.styles?.popup?.root, nestedPopupStyle),\n },\n }\n : props.styles\n }\n popupStyle={nestedPopupStyle}\n picker={value?.type || 'date'}\n value={\n Array.isArray(value?.value) && value.value.length === 2\n ? value.value.map((item) => item && dayjs(item))\n : null\n }\n onChange={(dateValue) => {\n onChange((currentValue) => {\n return Object.assign({ type: 'date' }, currentValue, {\n value:\n dateValue && dateValue[0] && dateValue[1]\n ? [\n dateValue[0].startOf(currentValue?.type || 'date').toDate(),\n dateValue[1].endOf(currentValue?.type || 'date').toDate(),\n ]\n : null,\n });\n });\n }}\n />\n </Space.Compact>\n {renderShortcuts}\n </Flex>\n );\n};\n\nexport default TypeDateRangePickerField;\n"],"names":["FIELD_MOBILE_POPUP_CLASS","TypeDateRangePickerField","valueProp","onChangeProp","defaultValue","shortcuts","shortcutOptions","props","formatMessage","useIntl","isMobile","fixedModeClass","getPopupContainer","useFilterPopupContainer","nestedPopupClassName","classnames","style","nestedPopupStyle","MOBILE_POPUP_Z_INDEX","typeList","defaultShortcuts","useMemo","dayjs","currentShortcuts","isControlled","innerValueRef","useRef","value","onChange","useCallback","newValue","handleShortcutClick","shortcut","start","end","type","isShortcutActive","valueStart","valueEnd","shortcutStart","shortcutEnd","renderShortcuts","jsx","index","jsxs","Flex","Space","Select","typeValue","currentValue","_a","startTime","endTime","val","label","DatePicker","_c","_b","_d","_f","_e","item","dateValue"],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
- import { DatePicker as n } from "antd";
3
- import p from "../withFieldItem.js";
2
+ import { DatePicker as p } from "antd";
3
+ import n from "../withFieldItem.js";
4
4
  import c from "dayjs";
5
+ import "../../../utils/ensureDayjsZhCn.js";
5
6
  import d from "../withLocale.js";
6
7
  import u from "../style.module.scss.js";
7
8
  import O from "classnames";
8
- const b = d(
9
- p(({ value: e, onChange: i, picker: t = "date", ...a }) => {
9
+ const g = d(
10
+ n(({ value: e, onChange: i, picker: t = "date", ...a }) => {
10
11
  var r, s, f;
11
12
  return /* @__PURE__ */ l(
12
- n,
13
+ p,
13
14
  {
14
15
  ...a,
15
16
  inputReadOnly: !0,
@@ -34,6 +35,6 @@ const b = d(
34
35
  })
35
36
  );
36
37
  export {
37
- b as default
38
+ g as default
38
39
  };
39
40
  //# sourceMappingURL=DatePickerFilterItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerFilterItem.js","sources":["../../../../src/components/ReactFilter/fields/DatePickerFilterItem.jsx"],"sourcesContent":["// @ts-nocheck\nimport { DatePicker } from 'antd';\nimport withFieldItem from '../withFieldItem';\nimport dayjs from 'dayjs';\nimport withLocale from '../withLocale';\nimport style from '../style.module.scss';\nimport classnames from 'classnames';\n\nconst DatePickerFilterItem = withLocale(\n withFieldItem(({ value, onChange, picker = 'date', ...props }) => {\n return (\n <DatePicker\n {...props}\n inputReadOnly\n picker={picker}\n classNames={{\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, style['date-picker-popup']),\n },\n }}\n value={value && dayjs(value.value)}\n onChange={(value) => {\n const { format } = Object.assign({ format: 'YYYY-MM-DD' }, props);\n value &&\n onChange({\n label:\n picker !== 'date'\n ? `${value.startOf(picker).format(format)}~${value.endOf(picker).format(format)}`\n : value.format(format),\n value: new Date(value.startOf(picker).valueOf()),\n });\n }}\n />\n );\n }),\n);\n\nexport default DatePickerFilterItem;\n"],"names":["DatePickerFilterItem","withLocale","withFieldItem","value","onChange","picker","props","jsx","DatePicker","_a","classnames","_c","_b","style","dayjs","format"],"mappings":";;;;;;;AAQA,MAAMA,IAAuBC;AAAA,EAC3BC,EAAc,CAAC,EAAE,OAAAC,GAAO,UAAAC,GAAU,QAAAC,IAAS,QAAQ,GAAGC,QAAY;;AAChE,WACE,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACE,GAAGF;AAAA,QACJ,eAAa;AAAA,QACb,QAAAD;AAAA,QACA,YAAY;AAAA,UACV,GAAGC,EAAM;AAAA,UACT,OAAO;AAAA,YACL,IAAGG,IAAAH,EAAM,eAAN,gBAAAG,EAAkB;AAAA,YACrB,MAAMC,GAAWC,KAAAC,IAAAN,EAAM,eAAN,gBAAAM,EAAkB,UAAlB,gBAAAD,EAAyB,MAAME,EAAM,mBAAmB,CAAC;AAAA,UAAA;AAAA,QAC5E;AAAA,QAEF,OAAOV,KAASW,EAAMX,EAAM,KAAK;AAAA,QACjC,UAAU,CAACA,MAAU;AACnB,gBAAM,EAAE,QAAAY,MAAW,OAAO,OAAO,EAAE,QAAQ,aAAA,GAAgBT,CAAK;AAChEH,UAAAA,KACEC,EAAS;AAAA,YACP,OACEC,MAAW,SACP,GAAGF,EAAM,QAAQE,CAAM,EAAE,OAAOU,CAAM,CAAC,IAAIZ,EAAM,MAAME,CAAM,EAAE,OAAOU,CAAM,CAAC,KAC7EZ,EAAM,OAAOY,CAAM;AAAA,YACzB,OAAO,IAAI,KAAKZ,EAAM,QAAQE,CAAM,EAAE,SAAS;AAAA,UAAA,CAChD;AAAA,QACL;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN,CAAC;AACH;"}
1
+ {"version":3,"file":"DatePickerFilterItem.js","sources":["../../../../src/components/ReactFilter/fields/DatePickerFilterItem.jsx"],"sourcesContent":["// @ts-nocheck\nimport { DatePicker } from 'antd';\nimport withFieldItem from '../withFieldItem';\nimport dayjs from 'dayjs';\nimport '@/utils/ensureDayjsZhCn';\nimport withLocale from '../withLocale';\nimport style from '../style.module.scss';\nimport classnames from 'classnames';\n\nconst DatePickerFilterItem = withLocale(\n withFieldItem(({ value, onChange, picker = 'date', ...props }) => {\n return (\n <DatePicker\n {...props}\n inputReadOnly\n picker={picker}\n classNames={{\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, style['date-picker-popup']),\n },\n }}\n value={value && dayjs(value.value)}\n onChange={(value) => {\n const { format } = Object.assign({ format: 'YYYY-MM-DD' }, props);\n value &&\n onChange({\n label:\n picker !== 'date'\n ? `${value.startOf(picker).format(format)}~${value.endOf(picker).format(format)}`\n : value.format(format),\n value: new Date(value.startOf(picker).valueOf()),\n });\n }}\n />\n );\n }),\n);\n\nexport default DatePickerFilterItem;\n"],"names":["DatePickerFilterItem","withLocale","withFieldItem","value","onChange","picker","props","jsx","DatePicker","_a","classnames","_c","_b","style","dayjs","format"],"mappings":";;;;;;;;AASA,MAAMA,IAAuBC;AAAA,EAC3BC,EAAc,CAAC,EAAE,OAAAC,GAAO,UAAAC,GAAU,QAAAC,IAAS,QAAQ,GAAGC,QAAY;;AAChE,WACE,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACE,GAAGF;AAAA,QACJ,eAAa;AAAA,QACb,QAAAD;AAAA,QACA,YAAY;AAAA,UACV,GAAGC,EAAM;AAAA,UACT,OAAO;AAAA,YACL,IAAGG,IAAAH,EAAM,eAAN,gBAAAG,EAAkB;AAAA,YACrB,MAAMC,GAAWC,KAAAC,IAAAN,EAAM,eAAN,gBAAAM,EAAkB,UAAlB,gBAAAD,EAAyB,MAAME,EAAM,mBAAmB,CAAC;AAAA,UAAA;AAAA,QAC5E;AAAA,QAEF,OAAOV,KAASW,EAAMX,EAAM,KAAK;AAAA,QACjC,UAAU,CAACA,MAAU;AACnB,gBAAM,EAAE,QAAAY,MAAW,OAAO,OAAO,EAAE,QAAQ,aAAA,GAAgBT,CAAK;AAChEH,UAAAA,KACEC,EAAS;AAAA,YACP,OACEC,MAAW,SACP,GAAGF,EAAM,QAAQE,CAAM,EAAE,OAAOU,CAAM,CAAC,IAAIZ,EAAM,MAAME,CAAM,EAAE,OAAOU,CAAM,CAAC,KAC7EZ,EAAM,OAAOY,CAAM;AAAA,YACzB,OAAO,IAAI,KAAKZ,EAAM,QAAQE,CAAM,EAAE,SAAS;AAAA,UAAA,CAChD;AAAA,QACL;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN,CAAC;AACH;"}
@@ -2,10 +2,11 @@ import { jsxs as c, jsx as f } from "react/jsx-runtime";
2
2
  import { Flex as n, DatePicker as u } from "antd";
3
3
  import y from "../withFieldItem.js";
4
4
  import g from "dayjs";
5
+ import "../../../utils/ensureDayjsZhCn.js";
5
6
  import j from "../style.module.scss.js";
6
7
  import D from "../withLocale.js";
7
8
  import N from "classnames";
8
- const P = D(
9
+ const R = D(
9
10
  y(({ value: t, onChange: m, header: r, ...a }) => {
10
11
  var s, i, l;
11
12
  return /* @__PURE__ */ c(n, { vertical: !0, children: [
@@ -37,6 +38,6 @@ const P = D(
37
38
  })
38
39
  );
39
40
  export {
40
- P as default
41
+ R as default
41
42
  };
42
43
  //# sourceMappingURL=DateRangePickerFilterItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePickerFilterItem.js","sources":["../../../../src/components/ReactFilter/fields/DateRangePickerFilterItem.jsx"],"sourcesContent":["// @ts-nocheck\nimport { DatePicker, Flex } from 'antd';\nimport withFieldItem from '../withFieldItem';\nimport dayjs from 'dayjs';\nimport style from '../style.module.scss';\nimport withLocale from '../withLocale';\nimport classnames from 'classnames';\n\nconst DateRangePickerFilterItem = withLocale(\n withFieldItem(({ value, onChange, header, ...props }) => {\n return (\n <Flex vertical>\n {typeof header === 'function' ? header({ value, onChange }) : header}\n <DatePicker.RangePicker\n {...props}\n inputReadOnly\n allowEmpty={[false, false]}\n classNames={{\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, style['date-range-picker-popup']),\n },\n }}\n value={\n value &&\n Array.isArray(value.value) &&\n value.value.length === 2 &&\n value.value.map((item) => dayjs(item))\n }\n onChange={(value) => {\n const { format } = Object.assign({ format: 'YYYY-MM-DD' }, props);\n onChange({\n label: value.map((item) => item.format(format)).join('~'),\n value: value.map((item) => new Date(item.valueOf())),\n });\n }}\n />\n </Flex>\n );\n }),\n);\n\nexport default DateRangePickerFilterItem;\n"],"names":["DateRangePickerFilterItem","withLocale","withFieldItem","value","onChange","header","props","jsxs","Flex","jsx","DatePicker","_a","classnames","_c","_b","style","item","dayjs","format"],"mappings":";;;;;;;AAQA,MAAMA,IAA4BC;AAAA,EAChCC,EAAc,CAAC,EAAE,OAAAC,GAAO,UAAAC,GAAU,QAAAC,GAAQ,GAAGC,QAAY;;AACvD,WACE,gBAAAC,EAACC,GAAA,EAAK,UAAQ,IACX,UAAA;AAAA,MAAA,OAAOH,KAAW,aAAaA,EAAO,EAAE,OAAAF,GAAO,UAAAC,EAAA,CAAU,IAAIC;AAAA,MAC9D,gBAAAI;AAAA,QAACC,EAAW;AAAA,QAAX;AAAA,UACE,GAAGJ;AAAA,UACJ,eAAa;AAAA,UACb,YAAY,CAAC,IAAO,EAAK;AAAA,UACzB,YAAY;AAAA,YACV,GAAGA,EAAM;AAAA,YACT,OAAO;AAAA,cACL,IAAGK,IAAAL,EAAM,eAAN,gBAAAK,EAAkB;AAAA,cACrB,MAAMC,GAAWC,KAAAC,IAAAR,EAAM,eAAN,gBAAAQ,EAAkB,UAAlB,gBAAAD,EAAyB,MAAME,EAAM,yBAAyB,CAAC;AAAA,YAAA;AAAA,UAClF;AAAA,UAEF,OACEZ,KACA,MAAM,QAAQA,EAAM,KAAK,KACzBA,EAAM,MAAM,WAAW,KACvBA,EAAM,MAAM,IAAI,CAACa,MAASC,EAAMD,CAAI,CAAC;AAAA,UAEvC,UAAU,CAACb,MAAU;AACnB,kBAAM,EAAE,QAAAe,MAAW,OAAO,OAAO,EAAE,QAAQ,aAAA,GAAgBZ,CAAK;AAChE,YAAAF,EAAS;AAAA,cACP,OAAOD,EAAM,IAAI,CAACa,MAASA,EAAK,OAAOE,CAAM,CAAC,EAAE,KAAK,GAAG;AAAA,cACxD,OAAOf,EAAM,IAAI,CAACa,MAAS,IAAI,KAAKA,EAAK,SAAS,CAAC;AAAA,YAAA,CACpD;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,GACF;AAAA,EAEJ,CAAC;AACH;"}
1
+ {"version":3,"file":"DateRangePickerFilterItem.js","sources":["../../../../src/components/ReactFilter/fields/DateRangePickerFilterItem.jsx"],"sourcesContent":["// @ts-nocheck\nimport { DatePicker, Flex } from 'antd';\nimport withFieldItem from '../withFieldItem';\nimport dayjs from 'dayjs';\nimport '@/utils/ensureDayjsZhCn';\nimport style from '../style.module.scss';\nimport withLocale from '../withLocale';\nimport classnames from 'classnames';\n\nconst DateRangePickerFilterItem = withLocale(\n withFieldItem(({ value, onChange, header, ...props }) => {\n return (\n <Flex vertical>\n {typeof header === 'function' ? header({ value, onChange }) : header}\n <DatePicker.RangePicker\n {...props}\n inputReadOnly\n allowEmpty={[false, false]}\n classNames={{\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, style['date-range-picker-popup']),\n },\n }}\n value={\n value &&\n Array.isArray(value.value) &&\n value.value.length === 2 &&\n value.value.map((item) => dayjs(item))\n }\n onChange={(value) => {\n const { format } = Object.assign({ format: 'YYYY-MM-DD' }, props);\n onChange({\n label: value.map((item) => item.format(format)).join('~'),\n value: value.map((item) => new Date(item.valueOf())),\n });\n }}\n />\n </Flex>\n );\n }),\n);\n\nexport default DateRangePickerFilterItem;\n"],"names":["DateRangePickerFilterItem","withLocale","withFieldItem","value","onChange","header","props","jsxs","Flex","jsx","DatePicker","_a","classnames","_c","_b","style","item","dayjs","format"],"mappings":";;;;;;;;AASA,MAAMA,IAA4BC;AAAA,EAChCC,EAAc,CAAC,EAAE,OAAAC,GAAO,UAAAC,GAAU,QAAAC,GAAQ,GAAGC,QAAY;;AACvD,WACE,gBAAAC,EAACC,GAAA,EAAK,UAAQ,IACX,UAAA;AAAA,MAAA,OAAOH,KAAW,aAAaA,EAAO,EAAE,OAAAF,GAAO,UAAAC,EAAA,CAAU,IAAIC;AAAA,MAC9D,gBAAAI;AAAA,QAACC,EAAW;AAAA,QAAX;AAAA,UACE,GAAGJ;AAAA,UACJ,eAAa;AAAA,UACb,YAAY,CAAC,IAAO,EAAK;AAAA,UACzB,YAAY;AAAA,YACV,GAAGA,EAAM;AAAA,YACT,OAAO;AAAA,cACL,IAAGK,IAAAL,EAAM,eAAN,gBAAAK,EAAkB;AAAA,cACrB,MAAMC,GAAWC,KAAAC,IAAAR,EAAM,eAAN,gBAAAQ,EAAkB,UAAlB,gBAAAD,EAAyB,MAAME,EAAM,yBAAyB,CAAC;AAAA,YAAA;AAAA,UAClF;AAAA,UAEF,OACEZ,KACA,MAAM,QAAQA,EAAM,KAAK,KACzBA,EAAM,MAAM,WAAW,KACvBA,EAAM,MAAM,IAAI,CAACa,MAASC,EAAMD,CAAI,CAAC;AAAA,UAEvC,UAAU,CAACb,MAAU;AACnB,kBAAM,EAAE,QAAAe,MAAW,OAAO,OAAO,EAAE,QAAQ,aAAA,GAAgBZ,CAAK;AAChE,YAAAF,EAAS;AAAA,cACP,OAAOD,EAAM,IAAI,CAACa,MAASA,EAAK,OAAOE,CAAM,CAAC,EAAE,KAAK,GAAG;AAAA,cACxD,OAAOf,EAAM,IAAI,CAACa,MAAS,IAAI,KAAKA,EAAK,SAAS,CAAC;AAAA,YAAA,CACpD;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,GACF;AAAA,EAEJ,CAAC;AACH;"}
@@ -1,11 +1,12 @@
1
- import { jsx as m } from "react/jsx-runtime";
1
+ import { jsx as n } from "react/jsx-runtime";
2
2
  import y from "../PopoverItem.js";
3
- import d from "../common/TypeDateRangePickerField/index.js";
4
- import p from "../../../_virtual/get.js";
3
+ import p from "../common/TypeDateRangePickerField/index.js";
4
+ import d from "../../../_virtual/get.js";
5
5
  import g from "../style.module.scss.js";
6
6
  import f from "dayjs";
7
7
  import h from "../withLocale.js";
8
- const R = h(({ label: s, value: i, onChange: v, ...n }) => /* @__PURE__ */ m(
8
+ import "../../../utils/ensureDayjsZhCn.js";
9
+ const b = h(({ label: s, value: i, onChange: v, ...m }) => /* @__PURE__ */ n(
9
10
  y,
10
11
  {
11
12
  label: s,
@@ -15,15 +16,15 @@ const R = h(({ label: s, value: i, onChange: v, ...n }) => /* @__PURE__ */ m(
15
16
  const o = r == null ? void 0 : r.value;
16
17
  return (o == null ? void 0 : o.type) && Array.isArray(o == null ? void 0 : o.value) && o.value.length === 2;
17
18
  },
18
- children: ({ value: r, onChange: o }) => /* @__PURE__ */ m(
19
- d,
19
+ children: ({ value: r, onChange: o }) => /* @__PURE__ */ n(
20
+ p,
20
21
  {
21
- ...n,
22
+ ...m,
22
23
  inputReadOnly: !0,
23
24
  className: g["filter-item-text"],
24
- value: p(r, "value"),
25
+ value: d(r, "value"),
25
26
  onChange: (e) => {
26
- const { format: a = "YYYY-MM-DD" } = n, t = (e == null ? void 0 : e.value) || [];
27
+ const { format: a = "YYYY-MM-DD" } = m, t = (e == null ? void 0 : e.value) || [];
27
28
  let l = "";
28
29
  t[0] && !t[1] ? l = `${f(t[0]).format(a)}以后` : !t[0] && t[1] ? l = `${f(t[1]).format(a)}以前` : t[0] && t[1] && (l = `${f(t[0]).format(a)}~${f(t[1]).format(a)}`), o({
29
30
  label: l,
@@ -35,6 +36,6 @@ const R = h(({ label: s, value: i, onChange: v, ...n }) => /* @__PURE__ */ m(
35
36
  }
36
37
  ));
37
38
  export {
38
- R as default
39
+ b as default
39
40
  };
40
41
  //# sourceMappingURL=TypeDateRangePickerFilterItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypeDateRangePickerFilterItem.js","sources":["../../../../src/components/ReactFilter/fields/TypeDateRangePickerFilterItem.jsx"],"sourcesContent":["// @ts-nocheck\nimport PopoverItem from '../PopoverItem';\nimport TypeDateRangePickerField from '../common/TypeDateRangePickerField';\nimport get from 'lodash/get';\nimport style from '../style.module.scss';\nimport dayjs from 'dayjs';\nimport withLocale from '../withLocale';\n\nconst TypeDateRangePickerFilterItem = withLocale(({ label, value, onChange, ...props }) => {\n return (\n <PopoverItem\n label={label}\n value={value}\n onChange={onChange}\n onValidate={(item) => {\n const itemValue = item?.value;\n return itemValue?.type && Array.isArray(itemValue?.value) && itemValue.value.length === 2;\n }}\n >\n {({ value, onChange }) => (\n <TypeDateRangePickerField\n {...props}\n inputReadOnly\n className={style['filter-item-text']}\n value={get(value, 'value')}\n onChange={(pickerValue) => {\n const { format = 'YYYY-MM-DD' } = props;\n const val = pickerValue?.value || [];\n let displayLabel = '';\n if (val[0] && !val[1]) {\n displayLabel = `${dayjs(val[0]).format(format)}以后`;\n } else if (!val[0] && val[1]) {\n displayLabel = `${dayjs(val[1]).format(format)}以前`;\n } else if (val[0] && val[1]) {\n displayLabel = `${dayjs(val[0]).format(format)}~${dayjs(val[1]).format(format)}`;\n }\n onChange({\n label: displayLabel,\n value: pickerValue,\n });\n }}\n />\n )}\n </PopoverItem>\n );\n});\n\nexport default TypeDateRangePickerFilterItem;\n"],"names":["TypeDateRangePickerFilterItem","withLocale","label","value","onChange","props","jsx","PopoverItem","item","itemValue","TypeDateRangePickerField","style","get","pickerValue","format","val","displayLabel","dayjs"],"mappings":";;;;;;;AAQA,MAAMA,IAAgCC,EAAW,CAAC,EAAE,OAAAC,GAAO,OAAAC,GAAO,UAAAC,GAAU,GAAGC,QAE3E,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,OAAAL;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAY,CAACI,MAAS;AACpB,YAAMC,IAAYD,KAAA,gBAAAA,EAAM;AACxB,cAAOC,KAAA,gBAAAA,EAAW,SAAQ,MAAM,QAAQA,KAAA,gBAAAA,EAAW,KAAK,KAAKA,EAAU,MAAM,WAAW;AAAA,IAC1F;AAAA,IAEC,WAAC,EAAE,OAAAN,GAAO,UAAAC,QACT,gBAAAE;AAAA,MAACI;AAAA,MAAA;AAAA,QACE,GAAGL;AAAA,QACJ,eAAa;AAAA,QACb,WAAWM,EAAM,kBAAkB;AAAA,QACnC,OAAOC,EAAIT,GAAO,OAAO;AAAA,QACzB,UAAU,CAACU,MAAgB;AACzB,gBAAM,EAAE,QAAAC,IAAS,aAAA,IAAiBT,GAC5BU,KAAMF,KAAA,gBAAAA,EAAa,UAAS,CAAA;AAClC,cAAIG,IAAe;AACnB,UAAID,EAAI,CAAC,KAAK,CAACA,EAAI,CAAC,IAClBC,IAAe,GAAGC,EAAMF,EAAI,CAAC,CAAC,EAAE,OAAOD,CAAM,CAAC,OACrC,CAACC,EAAI,CAAC,KAAKA,EAAI,CAAC,IACzBC,IAAe,GAAGC,EAAMF,EAAI,CAAC,CAAC,EAAE,OAAOD,CAAM,CAAC,OACrCC,EAAI,CAAC,KAAKA,EAAI,CAAC,MACxBC,IAAe,GAAGC,EAAMF,EAAI,CAAC,CAAC,EAAE,OAAOD,CAAM,CAAC,IAAIG,EAAMF,EAAI,CAAC,CAAC,EAAE,OAAOD,CAAM,CAAC,KAEhFV,EAAS;AAAA,YACP,OAAOY;AAAA,YACP,OAAOH;AAAA,UAAA,CACR;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAAA,CAIP;"}
1
+ {"version":3,"file":"TypeDateRangePickerFilterItem.js","sources":["../../../../src/components/ReactFilter/fields/TypeDateRangePickerFilterItem.jsx"],"sourcesContent":["// @ts-nocheck\nimport PopoverItem from '../PopoverItem';\nimport TypeDateRangePickerField from '../common/TypeDateRangePickerField';\nimport get from 'lodash/get';\nimport style from '../style.module.scss';\nimport dayjs from 'dayjs';\nimport withLocale from '../withLocale';\nimport '@/utils/ensureDayjsZhCn';\n\nconst TypeDateRangePickerFilterItem = withLocale(({ label, value, onChange, ...props }) => {\n return (\n <PopoverItem\n label={label}\n value={value}\n onChange={onChange}\n onValidate={(item) => {\n const itemValue = item?.value;\n return itemValue?.type && Array.isArray(itemValue?.value) && itemValue.value.length === 2;\n }}\n >\n {({ value, onChange }) => (\n <TypeDateRangePickerField\n {...props}\n inputReadOnly\n className={style['filter-item-text']}\n value={get(value, 'value')}\n onChange={(pickerValue) => {\n const { format = 'YYYY-MM-DD' } = props;\n const val = pickerValue?.value || [];\n let displayLabel = '';\n if (val[0] && !val[1]) {\n displayLabel = `${dayjs(val[0]).format(format)}以后`;\n } else if (!val[0] && val[1]) {\n displayLabel = `${dayjs(val[1]).format(format)}以前`;\n } else if (val[0] && val[1]) {\n displayLabel = `${dayjs(val[0]).format(format)}~${dayjs(val[1]).format(format)}`;\n }\n onChange({\n label: displayLabel,\n value: pickerValue,\n });\n }}\n />\n )}\n </PopoverItem>\n );\n});\n\nexport default TypeDateRangePickerFilterItem;\n"],"names":["TypeDateRangePickerFilterItem","withLocale","label","value","onChange","props","jsx","PopoverItem","item","itemValue","TypeDateRangePickerField","style","get","pickerValue","format","val","displayLabel","dayjs"],"mappings":";;;;;;;;AASA,MAAMA,IAAgCC,EAAW,CAAC,EAAE,OAAAC,GAAO,OAAAC,GAAO,UAAAC,GAAU,GAAGC,QAE3E,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,OAAAL;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,YAAY,CAACI,MAAS;AACpB,YAAMC,IAAYD,KAAA,gBAAAA,EAAM;AACxB,cAAOC,KAAA,gBAAAA,EAAW,SAAQ,MAAM,QAAQA,KAAA,gBAAAA,EAAW,KAAK,KAAKA,EAAU,MAAM,WAAW;AAAA,IAC1F;AAAA,IAEC,WAAC,EAAE,OAAAN,GAAO,UAAAC,QACT,gBAAAE;AAAA,MAACI;AAAA,MAAA;AAAA,QACE,GAAGL;AAAA,QACJ,eAAa;AAAA,QACb,WAAWM,EAAM,kBAAkB;AAAA,QACnC,OAAOC,EAAIT,GAAO,OAAO;AAAA,QACzB,UAAU,CAACU,MAAgB;AACzB,gBAAM,EAAE,QAAAC,IAAS,aAAA,IAAiBT,GAC5BU,KAAMF,KAAA,gBAAAA,EAAa,UAAS,CAAA;AAClC,cAAIG,IAAe;AACnB,UAAID,EAAI,CAAC,KAAK,CAACA,EAAI,CAAC,IAClBC,IAAe,GAAGC,EAAMF,EAAI,CAAC,CAAC,EAAE,OAAOD,CAAM,CAAC,OACrC,CAACC,EAAI,CAAC,KAAKA,EAAI,CAAC,IACzBC,IAAe,GAAGC,EAAMF,EAAI,CAAC,CAAC,EAAE,OAAOD,CAAM,CAAC,OACrCC,EAAI,CAAC,KAAKA,EAAI,CAAC,MACxBC,IAAe,GAAGC,EAAMF,EAAI,CAAC,CAAC,EAAE,OAAOD,CAAM,CAAC,IAAIG,EAAMF,EAAI,CAAC,CAAC,EAAE,OAAOD,CAAM,CAAC,KAEhFV,EAAS;AAAA,YACP,OAAOY;AAAA,YACP,OAAOH;AAAA,UAAA,CACR;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAAA,CAIP;"}
@@ -0,0 +1,29 @@
1
+ import { RadioGroupProps } from 'antd/es/radio/interface';
2
+ import { CSSProperties, ReactNode } from 'react';
3
+ export type SegmentedRadioOption<T = string | number> = {
4
+ label: ReactNode;
5
+ value: T;
6
+ disabled?: boolean;
7
+ };
8
+ export type SegmentedRadioProps<T = string | number> = Omit<RadioGroupProps, 'options' | 'onChange' | 'optionType' | 'buttonStyle'> & {
9
+ /** 选项列表 */
10
+ options: SegmentedRadioOption<T>[];
11
+ /** 当前值(受控) */
12
+ value?: T;
13
+ /** 默认值(非受控) */
14
+ defaultValue?: T;
15
+ /** 选中变化:直接回传 value,无需 e.target.value */
16
+ onChange?: (value: T) => void;
17
+ /** 尺寸:small / middle / large,默认 middle */
18
+ size?: RadioGroupProps['size'];
19
+ /** 整组禁用 */
20
+ disabled?: boolean;
21
+ /** 按钮样式:默认 solid(实心) */
22
+ buttonStyle?: RadioGroupProps['buttonStyle'];
23
+ /** 撑满容器宽度(每个按钮等分) */
24
+ block?: boolean;
25
+ className?: string;
26
+ style?: CSSProperties;
27
+ };
28
+ declare const SegmentedRadio: <T = string | number>(props: SegmentedRadioProps<T>) => React.ReactElement;
29
+ export default SegmentedRadio;
@@ -0,0 +1,48 @@
1
+ import { jsx as g } from "react/jsx-runtime";
2
+ import { Radio as b } from "antd";
3
+ import y from "classnames";
4
+ import t from "./style.module.scss.js";
5
+ function N(o) {
6
+ const {
7
+ options: s,
8
+ value: a,
9
+ defaultValue: n,
10
+ onChange: e,
11
+ size: r,
12
+ disabled: d,
13
+ buttonStyle: m = "solid",
14
+ block: i,
15
+ className: l,
16
+ style: c,
17
+ ...u
18
+ } = o, p = (f) => {
19
+ e == null || e(f.target.value);
20
+ };
21
+ return /* @__PURE__ */ g(
22
+ b.Group,
23
+ {
24
+ ...u,
25
+ "data-testid": "components-core-segmented-radio",
26
+ className: y(
27
+ "marsun-segmented-radio",
28
+ t["segmented-radio"],
29
+ i && t.block,
30
+ l
31
+ ),
32
+ style: c,
33
+ options: s,
34
+ value: a,
35
+ defaultValue: n,
36
+ onChange: p,
37
+ size: r,
38
+ disabled: d,
39
+ optionType: "button",
40
+ buttonStyle: m
41
+ }
42
+ );
43
+ }
44
+ const v = N;
45
+ export {
46
+ v as default
47
+ };
48
+ //# sourceMappingURL=SegmentedRadio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedRadio.js","sources":["../../../src/components/SegmentedRadio/SegmentedRadio.tsx"],"sourcesContent":["import { Radio } from 'antd';\nimport type { RadioGroupProps, RadioChangeEvent } from 'antd/es/radio/interface';\nimport classNames from 'classnames';\nimport type { CSSProperties, ReactNode } from 'react';\nimport styles from './style.module.scss';\n\nexport type SegmentedRadioOption<T = string | number> = {\n label: ReactNode;\n value: T;\n disabled?: boolean;\n};\n\nexport type SegmentedRadioProps<T = string | number> = Omit<\n RadioGroupProps,\n 'options' | 'onChange' | 'optionType' | 'buttonStyle'\n> & {\n /** 选项列表 */\n options: SegmentedRadioOption<T>[];\n /** 当前值(受控) */\n value?: T;\n /** 默认值(非受控) */\n defaultValue?: T;\n /** 选中变化:直接回传 value,无需 e.target.value */\n onChange?: (value: T) => void;\n /** 尺寸:small / middle / large,默认 middle */\n size?: RadioGroupProps['size'];\n /** 整组禁用 */\n disabled?: boolean;\n /** 按钮样式:默认 solid(实心) */\n buttonStyle?: RadioGroupProps['buttonStyle'];\n /** 撑满容器宽度(每个按钮等分) */\n block?: boolean;\n className?: string;\n style?: CSSProperties;\n};\n\n/**\n * 分段单选:基于 antd Radio.Group 的 button+solid 形态,\n * 统一项目内「分段按钮」交互与样式(对齐批量设置三大类的 panel-radio)。\n *\n * - 默认 optionType=\"button\" buttonStyle=\"solid\"\n * - onChange 直接回传 value,屏蔽 RadioChangeEvent\n * - block=true 时按钮等分容器宽度并自动换行\n */\nfunction SegmentedRadioInner<T = string | number>(props: SegmentedRadioProps<T>) {\n const {\n options,\n value,\n defaultValue,\n onChange,\n size,\n disabled,\n buttonStyle = 'solid',\n block,\n className,\n style,\n ...rest\n } = props;\n\n const handleChange = (e: RadioChangeEvent) => {\n onChange?.(e.target.value as T);\n };\n\n return (\n <Radio.Group\n {...rest}\n data-testid=\"components-core-segmented-radio\"\n className={classNames(\n 'marsun-segmented-radio',\n styles['segmented-radio'],\n block && styles['block'],\n className,\n )}\n style={style}\n options={options as RadioGroupProps['options']}\n value={value as RadioGroupProps['value']}\n defaultValue={defaultValue as RadioGroupProps['defaultValue']}\n onChange={handleChange}\n size={size}\n disabled={disabled}\n optionType=\"button\"\n buttonStyle={buttonStyle}\n />\n );\n}\n\nconst SegmentedRadio = SegmentedRadioInner as <T = string | number>(\n props: SegmentedRadioProps<T>,\n) => React.ReactElement;\n\nexport default SegmentedRadio;\n"],"names":["SegmentedRadioInner","props","options","value","defaultValue","onChange","size","disabled","buttonStyle","block","className","style","rest","handleChange","e","jsx","Radio","classNames","styles","SegmentedRadio"],"mappings":";;;;AA4CA,SAASA,EAAyCC,GAA+B;AAC/E,QAAM;AAAA,IACJ,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC,IAAc;AAAA,IACd,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDX,GAEEY,IAAe,CAACC,MAAwB;AAC5C,IAAAT,KAAA,QAAAA,EAAWS,EAAE,OAAO;AAAA,EACtB;AAEA,SACE,gBAAAC;AAAA,IAACC,EAAM;AAAA,IAAN;AAAA,MACE,GAAGJ;AAAA,MACJ,eAAY;AAAA,MACZ,WAAWK;AAAA,QACT;AAAA,QACAC,EAAO,iBAAiB;AAAA,QACxBT,KAASS,EAAO;AAAA,QAChBR;AAAA,MAAA;AAAA,MAEF,OAAAC;AAAA,MACA,SAAAT;AAAA,MACA,OAAAC;AAAA,MACA,cAAAC;AAAA,MACA,UAAUS;AAAA,MACV,MAAAP;AAAA,MACA,UAAAC;AAAA,MACA,YAAW;AAAA,MACX,aAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,MAAMW,IAAiBnB;"}
@@ -0,0 +1,2 @@
1
+ export { default as SegmentedRadio, default } from './SegmentedRadio';
2
+ export type { SegmentedRadioOption, SegmentedRadioProps } from './SegmentedRadio';
@@ -0,0 +1,9 @@
1
+ const e = "_block_1hifq_6", o = {
2
+ "segmented-radio": "_segmented-radio_1hifq_1",
3
+ block: e
4
+ };
5
+ export {
6
+ e as block,
7
+ o as default
8
+ };
9
+ //# sourceMappingURL=style.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -6,6 +6,10 @@ export interface StatCardProps {
6
6
  value: number;
7
7
  /** 前缀图标 */
8
8
  prefix?: React.ReactNode;
9
+ /** 后缀(如 %、单位) */
10
+ suffix?: React.ReactNode;
11
+ /** 小数精度 */
12
+ precision?: number;
9
13
  /** 数值颜色 */
10
14
  color?: string;
11
15
  /** 点击回调 */
@@ -1,34 +1,50 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { Statistic as d, Card as b } from "antd";
3
- import m from "./style.module.scss.js";
4
- import i from "classnames";
5
- const y = ({
6
- title: r,
7
- value: s,
8
- prefix: e,
9
- color: c = "#1677ff",
2
+ import { Card as v, Statistic as u } from "antd";
3
+ import e from "./style.module.scss.js";
4
+ import l from "classnames";
5
+ const j = ({
6
+ title: i,
7
+ value: d,
8
+ prefix: m,
9
+ suffix: o,
10
+ precision: f,
11
+ color: b = "#1677ff",
10
12
  onClick: a,
11
- inline: f = !1,
12
- fontSize: l,
13
- style: o
14
- }) => f ? /* @__PURE__ */ t("div", { className: a ? i("stat-card-clickable", m["stat-card-clickable"]) : void 0, onClick: a, style: o, children: /* @__PURE__ */ t(
15
- d,
16
- {
17
- title: r,
18
- value: s,
19
- prefix: e,
20
- valueStyle: { color: c, ...l ? { fontSize: l } : {} }
21
- }
22
- ) }) : /* @__PURE__ */ t(
23
- b,
24
- {
25
- hoverable: !!a,
26
- onClick: a,
27
- className: a ? i("stat-card-clickable", m["stat-card-clickable"]) : void 0,
28
- children: /* @__PURE__ */ t(d, { title: r, value: s, prefix: e, valueStyle: { color: c } })
29
- }
30
- );
13
+ inline: p = !1,
14
+ fontSize: r,
15
+ style: s
16
+ }) => {
17
+ const c = /* @__PURE__ */ t(
18
+ u,
19
+ {
20
+ title: i,
21
+ value: d,
22
+ prefix: m,
23
+ suffix: o,
24
+ precision: f,
25
+ valueStyle: { color: b, ...r ? { fontSize: r } : {} }
26
+ }
27
+ );
28
+ return p ? /* @__PURE__ */ t(
29
+ "div",
30
+ {
31
+ className: a ? l("stat-card-clickable", e["stat-card-clickable"]) : void 0,
32
+ onClick: a,
33
+ style: s,
34
+ children: c
35
+ }
36
+ ) : /* @__PURE__ */ t(
37
+ v,
38
+ {
39
+ hoverable: !!a,
40
+ onClick: a,
41
+ className: a ? l("stat-card-clickable", e["stat-card-clickable"]) : void 0,
42
+ style: s,
43
+ children: c
44
+ }
45
+ );
46
+ };
31
47
  export {
32
- y as default
48
+ j as default
33
49
  };
34
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/Stat/StatCard/index.tsx"],"sourcesContent":["import { Card, Statistic } from 'antd';\nimport React from 'react';\nimport styles from './style.module.scss';\nimport classNames from 'classnames';\n\nexport interface StatCardProps {\n /** 标题 */\n title: string;\n /** 数值 */\n value: number;\n /** 前缀图标 */\n prefix?: React.ReactNode;\n /** 数值颜色 */\n color?: string;\n /** 点击回调 */\n onClick?: () => void;\n /** 是否内联模式(不使用 Card 包裹) */\n inline?: boolean;\n /** 内联模式下的字体大小 */\n fontSize?: number;\n /** 自定义样式 */\n style?: React.CSSProperties;\n}\n\n/** 可点击的统计卡片 */\nconst StatCard: React.FC<StatCardProps> = ({\n title,\n value,\n prefix,\n color = '#1677ff',\n onClick,\n inline = false,\n fontSize,\n style,\n}) => {\n if (inline) {\n return (\n <div className={onClick ? classNames('stat-card-clickable', styles['stat-card-clickable']) : undefined} onClick={onClick} style={style}>\n <Statistic\n title={title}\n value={value}\n prefix={prefix}\n valueStyle={{ color, ...(fontSize ? { fontSize } : {}) }}\n />\n </div>\n );\n }\n\n return (\n <Card\n hoverable={!!onClick}\n onClick={onClick}\n className={onClick ? classNames('stat-card-clickable', styles['stat-card-clickable']) : undefined}\n >\n <Statistic title={title} value={value} prefix={prefix} valueStyle={{ color }} />\n </Card>\n );\n};\n\nexport default StatCard;\n"],"names":["StatCard","title","value","prefix","color","onClick","inline","fontSize","style","jsx","classNames","styles","Statistic","Card"],"mappings":";;;;AAyBA,MAAMA,IAAoC,CAAC;AAAA,EACzC,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,SAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,OAAAC;AACF,MACMF,IAEA,gBAAAG,EAAC,OAAA,EAAI,WAAWJ,IAAUK,EAAW,uBAAuBC,EAAO,qBAAqB,CAAC,IAAI,QAAW,SAAAN,GAAkB,OAAAG,GACxH,UAAA,gBAAAC;AAAA,EAACG;AAAA,EAAA;AAAA,IACC,OAAAX;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAY,EAAE,OAAAC,GAAO,GAAIG,IAAW,EAAE,UAAAA,EAAA,IAAa,CAAA,EAAC;AAAA,EAAG;AAAA,GAE3D,IAKF,gBAAAE;AAAA,EAACI;AAAA,EAAA;AAAA,IACC,WAAW,CAAC,CAACR;AAAA,IACb,SAAAA;AAAA,IACA,WAAWA,IAAUK,EAAW,uBAAuBC,EAAO,qBAAqB,CAAC,IAAI;AAAA,IAExF,UAAA,gBAAAF,EAACG,KAAU,OAAAX,GAAc,OAAAC,GAAc,QAAAC,GAAgB,YAAY,EAAE,OAAAC,IAAM,CAAG;AAAA,EAAA;AAAA;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Stat/StatCard/index.tsx"],"sourcesContent":["import { Card, Statistic } from 'antd';\nimport React from 'react';\nimport styles from './style.module.scss';\nimport classNames from 'classnames';\n\nexport interface StatCardProps {\n /** 标题 */\n title: string;\n /** 数值 */\n value: number;\n /** 前缀图标 */\n prefix?: React.ReactNode;\n /** 后缀(如 %、单位) */\n suffix?: React.ReactNode;\n /** 小数精度 */\n precision?: number;\n /** 数值颜色 */\n color?: string;\n /** 点击回调 */\n onClick?: () => void;\n /** 是否内联模式(不使用 Card 包裹) */\n inline?: boolean;\n /** 内联模式下的字体大小 */\n fontSize?: number;\n /** 自定义样式 */\n style?: React.CSSProperties;\n}\n\n/** 可点击的统计卡片 */\nconst StatCard: React.FC<StatCardProps> = ({\n title,\n value,\n prefix,\n suffix,\n precision,\n color = '#1677ff',\n onClick,\n inline = false,\n fontSize,\n style,\n}) => {\n const statistic = (\n <Statistic\n title={title}\n value={value}\n prefix={prefix}\n suffix={suffix}\n precision={precision}\n valueStyle={{ color, ...(fontSize ? { fontSize } : {}) }}\n />\n );\n\n if (inline) {\n return (\n <div\n className={\n onClick ? classNames('stat-card-clickable', styles['stat-card-clickable']) : undefined\n }\n onClick={onClick}\n style={style}\n >\n {statistic}\n </div>\n );\n }\n\n return (\n <Card\n hoverable={!!onClick}\n onClick={onClick}\n className={\n onClick ? classNames('stat-card-clickable', styles['stat-card-clickable']) : undefined\n }\n style={style}\n >\n {statistic}\n </Card>\n );\n};\n\nexport default StatCard;\n"],"names":["StatCard","title","value","prefix","suffix","precision","color","onClick","inline","fontSize","style","statistic","jsx","Statistic","classNames","styles","Card"],"mappings":";;;;AA6BA,MAAMA,IAAoC,CAAC;AAAA,EACzC,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,SAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,OAAAC;AACF,MAAM;AACJ,QAAMC,IACJ,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAZ;AAAA,MACA,OAAAC;AAAA,MACA,QAAAC;AAAA,MACA,QAAAC;AAAA,MACA,WAAAC;AAAA,MACA,YAAY,EAAE,OAAAC,GAAO,GAAIG,IAAW,EAAE,UAAAA,EAAA,IAAa,CAAA,EAAC;AAAA,IAAG;AAAA,EAAA;AAI3D,SAAID,IAEA,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WACEL,IAAUO,EAAW,uBAAuBC,EAAO,qBAAqB,CAAC,IAAI;AAAA,MAE/E,SAAAR;AAAA,MACA,OAAAG;AAAA,MAEC,UAAAC;AAAA,IAAA;AAAA,EAAA,IAML,gBAAAC;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,WAAW,CAAC,CAACT;AAAA,MACb,SAAAA;AAAA,MACA,WACEA,IAAUO,EAAW,uBAAuBC,EAAO,qBAAqB,CAAC,IAAI;AAAA,MAE/E,OAAAL;AAAA,MAEC,UAAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -6,8 +6,6 @@ export interface StatItem extends Omit<StatCardProps, 'inline' | 'fontSize'> {
6
6
  colProps?: ColProps;
7
7
  /** 是否隐藏,为 true 时不渲染 */
8
8
  hidden?: boolean;
9
- /** 后缀 */
10
- suffix?: React.ReactNode;
11
9
  }
12
10
  export interface StatCardListProps {
13
11
  /** 统计项列表 */
@@ -1 +1 @@
1
- {"version":3,"file":"StatCardList.js","sources":["../../../src/components/Stat/StatCardList.tsx"],"sourcesContent":["import { Col, Row } from 'antd';\nimport type { ColProps } from 'antd/es/grid';\nimport React from 'react';\nimport type { StatCardProps } from './StatCard';\nimport StatCard from './StatCard';\n\nexport interface StatItem extends Omit<StatCardProps, 'inline' | 'fontSize'> {\n /** 卡片占列配置,不传则根据总 items 数自动计算 */\n colProps?: ColProps;\n /** 是否隐藏,为 true 时不渲染 */\n hidden?: boolean;\n /** 后缀 */\n suffix?: React.ReactNode;\n}\n\nexport interface StatCardListProps {\n /** 统计项列表 */\n items: StatItem[];\n /** 行间距 */\n gutter?: [number, number];\n /** 容器 className */\n className?: string;\n /** 是否内联模式 */\n inline?: boolean;\n /** 内联模式字体大小 */\n fontSize?: number;\n}\n\n/** 根据项数自动计算默认列宽 */\nconst getDefaultCol = (total: number): ColProps => {\n if (total <= 2) return { xs: 12, sm: 12, lg: 12 };\n if (total <= 3) return { xs: 12, sm: 8, lg: 8 };\n if (total <= 4) return { xs: 12, sm: 12, lg: 6 };\n return { xs: 12, sm: 8, lg: 4 };\n};\n\n/** 统计卡片列表 */\nconst StatCardList: React.FC<StatCardListProps> = ({\n items,\n gutter = [16, 16],\n className,\n inline = false,\n fontSize,\n}) => {\n const visibleItems = items.filter((item) => !item.hidden);\n const defaultCol = getDefaultCol(visibleItems.length);\n\n return (\n <Row gutter={gutter} className={className}>\n {visibleItems.map((item, idx) => {\n const { colProps, hidden, ...cardProps } = item;\n return (\n <Col key={idx} {...(colProps ?? defaultCol)}>\n <StatCard {...cardProps} inline={inline} fontSize={fontSize} />\n </Col>\n );\n })}\n </Row>\n );\n};\n\nexport default StatCardList;\n"],"names":["getDefaultCol","total","StatCardList","items","gutter","className","inline","fontSize","visibleItems","item","defaultCol","jsx","Row","idx","colProps","hidden","cardProps","Col","StatCard"],"mappings":";;;AA6BA,MAAMA,IAAgB,CAACC,MACjBA,KAAS,IAAU,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAA,IACzCA,KAAS,IAAU,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAA,IACxCA,KAAS,IAAU,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAA,IACtC,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAA,GAIxBC,IAA4C,CAAC;AAAA,EACjD,OAAAC;AAAA,EACA,QAAAC,IAAS,CAAC,IAAI,EAAE;AAAA,EAChB,WAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC;AACF,MAAM;AACJ,QAAMC,IAAeL,EAAM,OAAO,CAACM,MAAS,CAACA,EAAK,MAAM,GAClDC,IAAaV,EAAcQ,EAAa,MAAM;AAEpD,SACE,gBAAAG,EAACC,KAAI,QAAAR,GAAgB,WAAAC,GAClB,YAAa,IAAI,CAACI,GAAMI,MAAQ;AAC/B,UAAM,EAAE,UAAAC,GAAU,QAAAC,GAAQ,GAAGC,MAAcP;AAC3C,WACE,gBAAAE,EAACM,GAAA,EAAe,GAAIH,KAAYJ,GAC9B,UAAA,gBAAAC,EAACO,GAAA,EAAU,GAAGF,GAAW,QAAAV,GAAgB,UAAAC,EAAA,CAAoB,EAAA,GADrDM,CAEV;AAAA,EAEJ,CAAC,EAAA,CACH;AAEJ;"}
1
+ {"version":3,"file":"StatCardList.js","sources":["../../../src/components/Stat/StatCardList.tsx"],"sourcesContent":["import { Col, Row } from 'antd';\nimport type { ColProps } from 'antd/es/grid';\nimport React from 'react';\nimport type { StatCardProps } from './StatCard';\nimport StatCard from './StatCard';\n\nexport interface StatItem extends Omit<StatCardProps, 'inline' | 'fontSize'> {\n /** 卡片占列配置,不传则根据总 items 数自动计算 */\n colProps?: ColProps;\n /** 是否隐藏,为 true 时不渲染 */\n hidden?: boolean;\n}\n\nexport interface StatCardListProps {\n /** 统计项列表 */\n items: StatItem[];\n /** 行间距 */\n gutter?: [number, number];\n /** 容器 className */\n className?: string;\n /** 是否内联模式 */\n inline?: boolean;\n /** 内联模式字体大小 */\n fontSize?: number;\n}\n\n/** 根据项数自动计算默认列宽 */\nconst getDefaultCol = (total: number): ColProps => {\n if (total <= 2) return { xs: 12, sm: 12, lg: 12 };\n if (total <= 3) return { xs: 12, sm: 8, lg: 8 };\n if (total <= 4) return { xs: 12, sm: 12, lg: 6 };\n return { xs: 12, sm: 8, lg: 4 };\n};\n\n/** 统计卡片列表 */\nconst StatCardList: React.FC<StatCardListProps> = ({\n items,\n gutter = [16, 16],\n className,\n inline = false,\n fontSize,\n}) => {\n const visibleItems = items.filter((item) => !item.hidden);\n const defaultCol = getDefaultCol(visibleItems.length);\n\n return (\n <Row gutter={gutter} className={className}>\n {visibleItems.map((item, idx) => {\n const { colProps, hidden, ...cardProps } = item;\n return (\n <Col key={idx} {...(colProps ?? defaultCol)}>\n <StatCard {...cardProps} inline={inline} fontSize={fontSize} />\n </Col>\n );\n })}\n </Row>\n );\n};\n\nexport default StatCardList;\n"],"names":["getDefaultCol","total","StatCardList","items","gutter","className","inline","fontSize","visibleItems","item","defaultCol","jsx","Row","idx","colProps","hidden","cardProps","Col","StatCard"],"mappings":";;;AA2BA,MAAMA,IAAgB,CAACC,MACjBA,KAAS,IAAU,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAA,IACzCA,KAAS,IAAU,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAA,IACxCA,KAAS,IAAU,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,EAAA,IACtC,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAA,GAIxBC,IAA4C,CAAC;AAAA,EACjD,OAAAC;AAAA,EACA,QAAAC,IAAS,CAAC,IAAI,EAAE;AAAA,EAChB,WAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,UAAAC;AACF,MAAM;AACJ,QAAMC,IAAeL,EAAM,OAAO,CAACM,MAAS,CAACA,EAAK,MAAM,GAClDC,IAAaV,EAAcQ,EAAa,MAAM;AAEpD,SACE,gBAAAG,EAACC,KAAI,QAAAR,GAAgB,WAAAC,GAClB,YAAa,IAAI,CAACI,GAAMI,MAAQ;AAC/B,UAAM,EAAE,UAAAC,GAAU,QAAAC,GAAQ,GAAGC,MAAcP;AAC3C,WACE,gBAAAE,EAACM,GAAA,EAAe,GAAIH,KAAYJ,GAC9B,UAAA,gBAAAC,EAACO,GAAA,EAAU,GAAGF,GAAW,QAAAV,GAAgB,UAAAC,EAAA,CAAoB,EAAA,GADrDM,CAEV;AAAA,EAEJ,CAAC,EAAA,CACH;AAEJ;"}
@@ -3,7 +3,7 @@ import { SemanticColor } from '../SemanticTag';
3
3
  export interface TagsProps {
4
4
  /** 标签列表 */
5
5
  tags?: string[];
6
- /** 最多展示的标签数量;未传或 tags 数量未超出时展示全部 */
6
+ /** 最多展示的标签数量;未传或无效时展示全部 */
7
7
  showLength?: number;
8
8
  /** 无标签时的占位,传 null 则不渲染 */
9
9
  empty?: React.ReactNode;
@@ -11,6 +11,6 @@ export interface TagsProps {
11
11
  /** 标签颜色,默认 INFO */
12
12
  color?: SemanticColor | string;
13
13
  }
14
- /** 通用标签列表(SemanticTag + showLength 截断) */
14
+ /** 通用标签列表(SemanticTag + showLength 截断;长文案 ellipsis + hover 全量) */
15
15
  declare const Tags: React.FC<TagsProps>;
16
16
  export default Tags;