@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.
- package/dist/_virtual/zh-cn.js +3 -0
- package/dist/_virtual/zh-cn.js.map +1 -0
- package/dist/_virtual/zh-cn2.js +5 -0
- package/dist/_virtual/zh-cn2.js.map +1 -0
- package/dist/components/Filter/FilterDatePicker/index.js +10 -9
- package/dist/components/Filter/FilterDatePicker/index.js.map +1 -1
- package/dist/components/Filter/FilterDateRange/index.js +3 -2
- package/dist/components/Filter/FilterDateRange/index.js.map +1 -1
- package/dist/components/Form/index.d.ts +1 -1
- package/dist/components/Form/kneFormInfo.d.ts +2 -0
- package/dist/components/Form/kneFormInfo.js +18 -17
- package/dist/components/Form/kneFormInfo.js.map +1 -1
- package/dist/components/OrgTree/OrgTree.js +52 -43
- package/dist/components/OrgTree/OrgTree.js.map +1 -1
- package/dist/components/OrgTree/style.module.scss.js +5 -5
- package/dist/components/PermissionBindPanel/PermissionBindPanel.d.ts +4 -1
- package/dist/components/PermissionBindPanel/PermissionBindPanel.js +121 -117
- package/dist/components/PermissionBindPanel/PermissionBindPanel.js.map +1 -1
- package/dist/components/ReactFilter/common/TypeDateRangePickerField/index.js +31 -30
- package/dist/components/ReactFilter/common/TypeDateRangePickerField/index.js.map +1 -1
- package/dist/components/ReactFilter/fields/DatePickerFilterItem.js +7 -6
- package/dist/components/ReactFilter/fields/DatePickerFilterItem.js.map +1 -1
- package/dist/components/ReactFilter/fields/DateRangePickerFilterItem.js +3 -2
- package/dist/components/ReactFilter/fields/DateRangePickerFilterItem.js.map +1 -1
- package/dist/components/ReactFilter/fields/TypeDateRangePickerFilterItem.js +11 -10
- package/dist/components/ReactFilter/fields/TypeDateRangePickerFilterItem.js.map +1 -1
- package/dist/components/SegmentedRadio/SegmentedRadio.d.ts +29 -0
- package/dist/components/SegmentedRadio/SegmentedRadio.js +48 -0
- package/dist/components/SegmentedRadio/SegmentedRadio.js.map +1 -0
- package/dist/components/SegmentedRadio/index.d.ts +2 -0
- package/dist/components/SegmentedRadio/style.module.scss.js +9 -0
- package/dist/components/SegmentedRadio/style.module.scss.js.map +1 -0
- package/dist/components/Stat/StatCard/index.d.ts +4 -0
- package/dist/components/Stat/StatCard/index.js +45 -29
- package/dist/components/Stat/StatCard/index.js.map +1 -1
- package/dist/components/Stat/StatCardList.d.ts +0 -2
- package/dist/components/Stat/StatCardList.js.map +1 -1
- package/dist/components/Tag/Tags/index.d.ts +2 -2
- package/dist/components/Tag/Tags/index.js +37 -22
- package/dist/components/Tag/Tags/index.js.map +1 -1
- package/dist/components/Tag/Tags/style.module.scss.js +3 -3
- package/dist/components/TooltipInfo/TooltipInfo.js +14 -8
- package/dist/components/TooltipInfo/TooltipInfo.js.map +1 -1
- package/dist/components/Upload/index.d.ts +6 -23
- package/dist/components/Upload/index.js +254 -141
- package/dist/components/Upload/index.js.map +1 -1
- package/dist/components/Upload/style.module.scss.js +22 -15
- package/dist/components/Upload/style.module.scss.js.map +1 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +580 -576
- package/dist/index.js.map +1 -1
- package/dist/marsun-components-core.css +1 -1
- package/dist/node_modules/dayjs/locale/zh-cn.js +25 -0
- package/dist/node_modules/dayjs/locale/zh-cn.js.map +1 -0
- package/dist/provider/MarsunCoreProvider.js +10 -9
- package/dist/provider/MarsunCoreProvider.js.map +1 -1
- package/dist/styles/global.css +1 -1
- package/dist/utils/ensureDayjsZhCn.d.ts +0 -0
- package/dist/utils/ensureDayjsZhCn.js +4 -0
- package/dist/utils/ensureDayjsZhCn.js.map +1 -0
- 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",
|
|
13
|
+
const $ = "react-filter-field-mobile-popup", pt = ({
|
|
13
14
|
value: b,
|
|
14
|
-
onChange:
|
|
15
|
+
onChange: d,
|
|
15
16
|
defaultValue: L,
|
|
16
17
|
shortcuts: F = !0,
|
|
17
18
|
shortcutOptions: N,
|
|
18
|
-
...
|
|
19
|
+
...i
|
|
19
20
|
}) => {
|
|
20
21
|
var M, x, A, P, E, I;
|
|
21
|
-
const { formatMessage:
|
|
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",
|
|
27
|
-
["month",
|
|
28
|
-
["week",
|
|
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:
|
|
33
|
+
label: l({ id: "last7Days" }),
|
|
33
34
|
getValue: () => [o().subtract(7, "day").startOf("day"), o().endOf("day")]
|
|
34
35
|
},
|
|
35
36
|
{
|
|
36
|
-
label:
|
|
37
|
+
label: l({ id: "thisMonth" }),
|
|
37
38
|
getValue: () => [o().startOf("month"), o().endOf("month")]
|
|
38
39
|
},
|
|
39
40
|
{
|
|
40
|
-
label:
|
|
41
|
+
label: l({ id: "last3Months" }),
|
|
41
42
|
getValue: () => [o().subtract(3, "month").startOf("day"), o().endOf("day")]
|
|
42
43
|
},
|
|
43
44
|
{
|
|
44
|
-
label:
|
|
45
|
+
label: l({ id: "thisYear" }),
|
|
45
46
|
getValue: () => [o().startOf("year"), o().endOf("day")]
|
|
46
47
|
},
|
|
47
48
|
{
|
|
48
|
-
label:
|
|
49
|
+
label: l({ id: "fullYear" }),
|
|
49
50
|
getValue: () => [o().startOf("year"), o().endOf("year")]
|
|
50
51
|
}
|
|
51
52
|
],
|
|
52
|
-
[
|
|
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),
|
|
56
|
+
h || (v.current = typeof t == "function" ? t(v.current) : t), d == null || d(typeof t == "function" ? t(e) : t);
|
|
56
57
|
},
|
|
57
|
-
[h,
|
|
58
|
+
[h, d, e]
|
|
58
59
|
), C = g(
|
|
59
60
|
(t) => {
|
|
60
|
-
const [s,
|
|
61
|
+
const [s, r] = t.getValue(), a = "date";
|
|
61
62
|
m({
|
|
62
63
|
type: a,
|
|
63
|
-
value: [s.startOf(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,
|
|
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
|
|
104
|
+
const r = o(s.value[0]), a = o(s.value[1]);
|
|
104
105
|
return {
|
|
105
106
|
value: [
|
|
106
|
-
|
|
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
|
-
...
|
|
123
|
+
...i,
|
|
123
124
|
getPopupContainer: D,
|
|
124
125
|
classNames: n ? {
|
|
125
|
-
...
|
|
126
|
+
...i.classNames,
|
|
126
127
|
popup: {
|
|
127
|
-
...(M =
|
|
128
|
-
root: S((A = (x =
|
|
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
|
-
} :
|
|
131
|
+
} : i.classNames,
|
|
131
132
|
styles: n ? {
|
|
132
|
-
...
|
|
133
|
+
...i.styles,
|
|
133
134
|
popup: {
|
|
134
|
-
...(P =
|
|
135
|
-
root: Object.assign({}, (I = (E =
|
|
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
|
-
} :
|
|
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
|
-
|
|
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":";;;;;;;;;;;;AAWA,MAAMA,IAA2B,mCAE3BC,KAA2B,CAAC;AAAA,EAChC,OAAOC;AAAA,EACP,UAAUC;AAAA,EACV,cAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,iBAAAC;AAAA,EACA,GAAGC;AACL,MAAM;;AACJ,QAAM,EAAE,eAAAC,MAAkBC,EAAgC,GACpD,EAAE,UAAAC,GAAU,gBAAAC,GAAgB,mBAAAC,EAAA,IAAsBC,EAAA,GAClDC,IAAuBC;AAAAA,IAC3BC,EAAM,yBAAyB;AAAA,IAC/BhB;AAAA,IACAW;AAAA,EAAA,GAEIM,IAAmBP,IAAW,EAAE,QAAQQ,MAAyB,QAEjEC,wBAAe,IAAI;AAAA,IACvB,CAAC,QAAQX,EAAc,EAAE,IAAI,aAAA,CAAc,CAAC;AAAA,IAC5C,CAAC,SAASA,EAAc,EAAE,IAAI,UAAA,CAAW,CAAC;AAAA,IAC1C,CAAC,QAAQA,EAAc,EAAE,IAAI,SAAA,CAAU,CAAC;AAAA,EAAA,CACzC,GAEKY,IAAmBC;AAAA,IACvB,MAAM;AAAA,MACJ;AAAA,QACE,OAAOb,EAAc,EAAE,IAAI,aAAa;AAAA,QACxC,UAAU,MAAM,CAACc,IAAQ,SAAS,GAAG,KAAK,EAAE,QAAQ,KAAK,GAAGA,EAAA,EAAQ,MAAM,KAAK,CAAC;AAAA,MAAA;AAAA,MAElF;AAAA,QACE,OAAOd,EAAc,EAAE,IAAI,aAAa;AAAA,QACxC,UAAU,MAAM,CAACc,EAAA,EAAQ,QAAQ,OAAO,GAAGA,EAAA,EAAQ,MAAM,OAAO,CAAC;AAAA,MAAA;AAAA,MAEnE;AAAA,QACE,OAAOd,EAAc,EAAE,IAAI,eAAe;AAAA,QAC1C,UAAU,MAAM,CAACc,IAAQ,SAAS,GAAG,OAAO,EAAE,QAAQ,KAAK,GAAGA,EAAA,EAAQ,MAAM,KAAK,CAAC;AAAA,MAAA;AAAA,MAEpF;AAAA,QACE,OAAOd,EAAc,EAAE,IAAI,YAAY;AAAA,QACvC,UAAU,MAAM,CAACc,EAAA,EAAQ,QAAQ,MAAM,GAAGA,EAAA,EAAQ,MAAM,KAAK,CAAC;AAAA,MAAA;AAAA,MAEhE;AAAA,QACE,OAAOd,EAAc,EAAE,IAAI,YAAY;AAAA,QACvC,UAAU,MAAM,CAACc,EAAA,EAAQ,QAAQ,MAAM,GAAGA,EAAA,EAAQ,MAAM,MAAM,CAAC;AAAA,MAAA;AAAA,IACjE;AAAA,IAEF,CAACd,CAAa;AAAA,EAAA,GAGVe,IACJjB,MAAoB,SAAYA,IAAkBD,IAAYe,IAAmB,MAE7EI,IAAetB,MAAc,QAC7BuB,IAAgBC,EAAOtB,KAAgB,EAAE,MAAM,QAAQ,OAAO,MAAM,GAEpEuB,IAAQH,IAAetB,IAAYuB,EAAc,SAEjDG,IAAWC;AAAA,IACf,CAACC,MAAa;AACZ,MAAKN,MACHC,EAAc,UACZ,OAAOK,KAAa,aAAaA,EAASL,EAAc,OAAO,IAAIK,IAEvE3B,KAAA,QAAAA,EAAe,OAAO2B,KAAa,aAAaA,EAASH,CAAK,IAAIG;AAAA,IACpE;AAAA,IACA,CAACN,GAAcrB,GAAcwB,CAAK;AAAA,EAAA,GAG9BI,IAAsBF;AAAA,IAC1B,CAACG,MAAa;AACZ,YAAM,CAACC,GAAOC,CAAG,IAAIF,EAAS,SAAA,GACxBG,IAAO;AACb,MAAAP,EAAS;AAAA,QACP,MAAAO;AAAA,QACA,OAAO,CAACF,EAAM,QAAQE,CAAI,EAAE,OAAA,GAAUD,EAAI,MAAMC,CAAI,EAAE,QAAQ;AAAA,MAAA,CAC/D;AAAA,IACH;AAAA,IACA,CAACP,CAAQ;AAAA,EAAA,GAGLQ,IAAmBP;AAAA,IACvB,CAACG,MAAa;AACZ,UAAI,EAACL,KAAA,QAAAA,EAAO,UAAS,CAAC,MAAM,QAAQA,EAAM,KAAK,KAAKA,EAAM,MAAM,WAAW;AACzE,eAAO;AAET,YAAM,CAACM,GAAOC,CAAG,IAAIF,EAAS,SAAA,GACxBG,KAAOR,KAAA,gBAAAA,EAAO,SAAQ,QACtBU,IAAaf,EAAMK,EAAM,MAAM,CAAC,CAAC,EAAE,QAAQQ,CAAI,GAC/CG,IAAWhB,EAAMK,EAAM,MAAM,CAAC,CAAC,EAAE,MAAMQ,CAAI,GAC3CI,IAAgBN,EAAM,QAAQE,CAAI,GAClCK,IAAcN,EAAI,MAAMC,CAAI;AAClC,aAAOE,EAAW,OAAOE,GAAeJ,CAAI,KAAKG,EAAS,OAAOE,GAAaL,CAAI;AAAA,IACpF;AAAA,IACA,CAACR,CAAK;AAAA,EAAA,GAGFc,IAAkBpB,EAAQ,MAC1B,CAACE,KAAoBA,EAAiB,WAAW,IAC5C,OAGP,gBAAAmB,EAAC,OAAA,EAAI,WAAW1B,EAAM,qBAAqB,GACxC,UAAAO,EAAiB,IAAI,CAACS,GAAUW,MAC/B,gBAAAD;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAW3B,EAAWC,EAAM,eAAe,GAAG;AAAA,QAC5C,CAACA,EAAM,WAAW,CAAC,GAAGoB,EAAiBJ,CAAQ;AAAA,MAAA,CAChD;AAAA,MACD,SAAS,MAAMD,EAAoBC,CAAQ;AAAA,MAE1C,UAAAA,EAAS;AAAA,IAAA;AAAA,IANLW;AAAA,EAAA,CAQR,GACH,GAED,CAACpB,GAAkBQ,GAAqBK,CAAgB,CAAC;AAE5D,SACE,gBAAAQ,EAACC,GAAA,EAAK,UAAQ,IAAC,KAAK,GAClB,UAAA;AAAA,IAAA,gBAAAD,EAACE,EAAM,SAAN,EACC,UAAA;AAAA,MAAA,gBAAAJ;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,OAAO,EAAE,OAAO,QAAA;AAAA,UAChB,mBAAAnC;AAAA,UACA,gBAAgBF,IAAWI,IAAuB;AAAA,UAClD,YAAYJ,IAAW,EAAE,OAAO,EAAE,MAAMI,EAAA,MAA2B;AAAA,UACnE,YAAYG;AAAA,UACZ,QAAQP,IAAW,EAAE,OAAO,EAAE,MAAMO,EAAA,MAAuB;AAAA,UAC3D,QAAOU,KAAA,gBAAAA,EAAO,SAAQ;AAAA,UACtB,UAAU,CAACqB,MAAc;AACvB,YAAApB,EAAS,CAACqB,MAAiB;;AACzB,kBAAI,GAACC,IAAAD,KAAA,gBAAAA,EAAc,UAAd,QAAAC,EAAqB;AACxB,uBAAO,EAAE,OAAO,MAAM,MAAMF,KAAa,OAAA;AAE3C,oBAAMG,IAAY7B,EAAM2B,EAAa,MAAM,CAAC,CAAC,GACvCG,IAAU9B,EAAM2B,EAAa,MAAM,CAAC,CAAC;AAC3C,qBAAO;AAAA,gBACL,OAAO;AAAA,kBACLE,EAAU,YAAYA,EAAU,QAAQH,KAAa,MAAM,EAAE,OAAA,IAAW;AAAA,kBACxEI,EAAQ,YAAYA,EAAQ,MAAMJ,KAAa,MAAM,EAAE,WAAW;AAAA,gBAAA;AAAA,gBAEpE,MAAMA,KAAa;AAAA,cAAA;AAAA,YAEvB,CAAC;AAAA,UACH;AAAA,UACA,SAAS,MAAM,KAAK7B,CAAQ,EAAE,IAAI,CAAC,CAACkC,GAAKC,CAAK,OAAO;AAAA,YACnD,OAAAA;AAAA,YACA,OAAOD;AAAA,UAAA,EACP;AAAA,QAAA;AAAA,MAAA;AAAA,MAEJ,gBAAAX;AAAA,QAACa,EAAW;AAAA,QAAX;AAAA,UACE,GAAGhD;AAAA,UACJ,mBAAAK;AAAA,UACA,YACEF,IACI;AAAA,YACE,GAAGH,EAAM;AAAA,YACT,OAAO;AAAA,cACL,IAAG2C,IAAA3C,EAAM,eAAN,gBAAA2C,EAAkB;AAAA,cACrB,MAAMnC,GAAWyC,KAAAC,IAAAlD,EAAM,eAAN,gBAAAkD,EAAkB,UAAlB,gBAAAD,EAAyB,MAAM1C,CAAoB;AAAA,YAAA;AAAA,UACtE,IAEFP,EAAM;AAAA,UAEZ,QACEG,IACI;AAAA,YACE,GAAGH,EAAM;AAAA,YACT,OAAO;AAAA,cACL,IAAGmD,IAAAnD,EAAM,WAAN,gBAAAmD,EAAc;AAAA,cACjB,MAAM,OAAO,OAAO,CAAA,IAAIC,KAAAC,IAAArD,EAAM,WAAN,gBAAAqD,EAAc,UAAd,gBAAAD,EAAqB,MAAM1C,CAAgB;AAAA,YAAA;AAAA,UACrE,IAEFV,EAAM;AAAA,UAEZ,YAAYU;AAAA,UACZ,SAAQU,KAAA,gBAAAA,EAAO,SAAQ;AAAA,UACvB,OACE,MAAM,QAAQA,KAAA,gBAAAA,EAAO,KAAK,KAAKA,EAAM,MAAM,WAAW,IAClDA,EAAM,MAAM,IAAI,CAACkC,MAASA,KAAQvC,EAAMuC,CAAI,CAAC,IAC7C;AAAA,UAEN,UAAU,CAACC,MAAc;AACvB,YAAAlC,EAAS,CAACqB,MACD,OAAO,OAAO,EAAE,MAAM,OAAA,GAAUA,GAAc;AAAA,cACnD,OACEa,KAAaA,EAAU,CAAC,KAAKA,EAAU,CAAC,IACpC;AAAA,gBACEA,EAAU,CAAC,EAAE,SAAQb,KAAA,gBAAAA,EAAc,SAAQ,MAAM,EAAE,OAAA;AAAA,gBACnDa,EAAU,CAAC,EAAE,OAAMb,KAAA,gBAAAA,EAAc,SAAQ,MAAM,EAAE,OAAA;AAAA,cAAO,IAE1D;AAAA,YAAA,CACP,CACF;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IACCR;AAAA,EAAA,GACH;AAEJ;"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
-
import { DatePicker as
|
|
3
|
-
import
|
|
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
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"
|
|
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
|
|
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
|
-
|
|
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":"
|
|
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
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import y from "../PopoverItem.js";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
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
|
-
|
|
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__ */
|
|
19
|
-
|
|
19
|
+
children: ({ value: r, onChange: o }) => /* @__PURE__ */ n(
|
|
20
|
+
p,
|
|
20
21
|
{
|
|
21
|
-
...
|
|
22
|
+
...m,
|
|
22
23
|
inputReadOnly: !0,
|
|
23
24
|
className: g["filter-item-text"],
|
|
24
|
-
value:
|
|
25
|
+
value: d(r, "value"),
|
|
25
26
|
onChange: (e) => {
|
|
26
|
-
const { format: a = "YYYY-MM-DD" } =
|
|
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
|
-
|
|
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":"
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,34 +1,50 @@
|
|
|
1
1
|
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
const
|
|
6
|
-
title:
|
|
7
|
-
value:
|
|
8
|
-
prefix:
|
|
9
|
-
|
|
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:
|
|
12
|
-
fontSize:
|
|
13
|
-
style:
|
|
14
|
-
}) =>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
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
|
|
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;"}
|
|
@@ -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
|
|
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
|
-
/**
|
|
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;
|