@hkyhy/marsun-components-core 0.1.19 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/index.d.ts +24 -0
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/index.js +95 -0
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/index.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/style.module.scss.js +15 -0
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/style.module.scss.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/index.d.ts +16 -0
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/index.js +37 -0
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/index.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/style.module.scss.js +9 -0
- package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/style.module.scss.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/index.d.ts +14 -0
- package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/index.js +79 -0
- package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/index.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/style.module.scss.js +18 -0
- package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/style.module.scss.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatInput/index.d.ts +2 -0
- package/dist/components/AgentHub/Chat/Detail/ChatInput/index.js +60 -49
- package/dist/components/AgentHub/Chat/Detail/ChatInput/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatInput/style.module.scss.js +7 -6
- package/dist/components/AgentHub/Chat/Detail/ChatInput/style.module.scss.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.d.ts +17 -4
- package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.js +104 -68
- package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatPanel/style.module.scss.js +13 -8
- package/dist/components/AgentHub/Chat/Detail/ChatPanel/style.module.scss.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/index.js +5 -4
- package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/style.module.scss.js +2 -2
- package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/ChatWidgetSparkline.d.ts +7 -0
- package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/ChatWidgetSparkline.js +55 -0
- package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/ChatWidgetSparkline.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/index.d.ts +10 -0
- package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/index.js +120 -0
- package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/index.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/style.module.scss.js +32 -0
- package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/style.module.scss.js.map +1 -0
- package/dist/components/AgentHub/Chat/Detail/CitationContent/style.module.scss.js +2 -2
- package/dist/components/AgentHub/Chat/Detail/MessageItem/index.js +130 -114
- package/dist/components/AgentHub/Chat/Detail/MessageItem/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/MessageItem/style.module.scss.js +20 -18
- package/dist/components/AgentHub/Chat/Detail/MessageItem/style.module.scss.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/index.d.ts +8 -0
- package/dist/components/AgentHub/Chat/hooks/index.d.ts +2 -0
- package/dist/components/AgentHub/Chat/hooks/useCitationPanel.d.ts +11 -0
- package/dist/components/AgentHub/Chat/hooks/useCitationPanel.js +22 -0
- package/dist/components/AgentHub/Chat/hooks/useCitationPanel.js.map +1 -0
- package/dist/components/AgentHub/types.d.ts +21 -0
- package/dist/components/Filter/FilterDateRange/index.d.ts +6 -1
- package/dist/components/Filter/FilterDateRange/index.js +84 -62
- package/dist/components/Filter/FilterDateRange/index.js.map +1 -1
- package/dist/components/Icons/index.d.ts +3 -1
- package/dist/components/Icons/index.js +157 -151
- package/dist/components/Icons/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +371 -355
- package/dist/index.js.map +1 -1
- package/dist/marsun-components-core.css +1 -1
- package/dist/styles/global.css +1 -1
- package/dist/utils/date.d.ts +12 -0
- package/dist/utils/date.js +29 -4
- package/dist/utils/date.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useState as e, useCallback as i } from "react";
|
|
2
|
+
function f() {
|
|
3
|
+
const [o, t] = e(!1), [s, n] = e([]), [l, a] = e(), c = i(() => {
|
|
4
|
+
t(!1), n([]), a(void 0);
|
|
5
|
+
}, []), C = i((d, h) => {
|
|
6
|
+
n(d), a(h), t(!0);
|
|
7
|
+
}, []), r = i(() => {
|
|
8
|
+
t(!1);
|
|
9
|
+
}, []);
|
|
10
|
+
return {
|
|
11
|
+
citationOpen: o,
|
|
12
|
+
panelCitations: s,
|
|
13
|
+
highlightedCitationIndex: l,
|
|
14
|
+
handleCitationClick: C,
|
|
15
|
+
closeCitationPanel: r,
|
|
16
|
+
resetCitationState: c
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
f as useCitationPanel
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=useCitationPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCitationPanel.js","sources":["../../../../../src/components/AgentHub/Chat/hooks/useCitationPanel.ts"],"sourcesContent":["import type { Citation } from '@/components/AgentHub/types';\nimport { useCallback, useState } from 'react';\n\nexport interface UseCitationPanelResult {\n citationOpen: boolean;\n panelCitations: Citation[];\n highlightedCitationIndex: number | undefined;\n handleCitationClick: (items: Citation[], index?: number) => void;\n closeCitationPanel: () => void;\n resetCitationState: () => void;\n}\n\n/** FAB / 会话布局:点击消息角标打开 CitationPanel 的受控状态 */\nexport function useCitationPanel(): UseCitationPanelResult {\n const [citationOpen, setCitationOpen] = useState(false);\n const [panelCitations, setPanelCitations] = useState<Citation[]>([]);\n const [highlightedCitationIndex, setHighlightedCitationIndex] = useState<number | undefined>();\n\n const resetCitationState = useCallback(() => {\n setCitationOpen(false);\n setPanelCitations([]);\n setHighlightedCitationIndex(undefined);\n }, []);\n\n const handleCitationClick = useCallback((items: Citation[], index?: number) => {\n setPanelCitations(items);\n setHighlightedCitationIndex(index);\n setCitationOpen(true);\n }, []);\n\n const closeCitationPanel = useCallback(() => {\n setCitationOpen(false);\n }, []);\n\n return {\n citationOpen,\n panelCitations,\n highlightedCitationIndex,\n handleCitationClick,\n closeCitationPanel,\n resetCitationState,\n };\n}\n"],"names":["useCitationPanel","citationOpen","setCitationOpen","useState","panelCitations","setPanelCitations","highlightedCitationIndex","setHighlightedCitationIndex","resetCitationState","useCallback","handleCitationClick","items","index","closeCitationPanel"],"mappings":";AAaO,SAASA,IAA2C;AACzD,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAChD,CAACC,GAAgBC,CAAiB,IAAIF,EAAqB,CAAA,CAAE,GAC7D,CAACG,GAA0BC,CAA2B,IAAIJ,EAAA,GAE1DK,IAAqBC,EAAY,MAAM;AAC3C,IAAAP,EAAgB,EAAK,GACrBG,EAAkB,CAAA,CAAE,GACpBE,EAA4B,MAAS;AAAA,EACvC,GAAG,CAAA,CAAE,GAECG,IAAsBD,EAAY,CAACE,GAAmBC,MAAmB;AAC7E,IAAAP,EAAkBM,CAAK,GACvBJ,EAA4BK,CAAK,GACjCV,EAAgB,EAAI;AAAA,EACtB,GAAG,CAAA,CAAE,GAECW,IAAqBJ,EAAY,MAAM;AAC3C,IAAAP,EAAgB,EAAK;AAAA,EACvB,GAAG,CAAA,CAAE;AAEL,SAAO;AAAA,IACL,cAAAD;AAAA,IACA,gBAAAG;AAAA,IACA,0BAAAE;AAAA,IACA,qBAAAI;AAAA,IACA,oBAAAG;AAAA,IACA,oBAAAL;AAAA,EAAA;AAEJ;"}
|
|
@@ -21,8 +21,29 @@ export interface ChatMessage {
|
|
|
21
21
|
thinking?: string;
|
|
22
22
|
streaming?: boolean;
|
|
23
23
|
thumbup?: boolean | null;
|
|
24
|
+
widgets?: ChatWidget[];
|
|
24
25
|
[key: string]: unknown;
|
|
25
26
|
}
|
|
27
|
+
export interface ChatWidgetSeries {
|
|
28
|
+
name?: string;
|
|
29
|
+
x?: string[];
|
|
30
|
+
y?: number[];
|
|
31
|
+
color?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ChatWidget {
|
|
34
|
+
type: string;
|
|
35
|
+
title?: string;
|
|
36
|
+
series?: ChatWidgetSeries[];
|
|
37
|
+
categories?: string[];
|
|
38
|
+
columns?: {
|
|
39
|
+
key: string;
|
|
40
|
+
label: string;
|
|
41
|
+
width?: number;
|
|
42
|
+
}[];
|
|
43
|
+
rows?: Record<string, unknown>[];
|
|
44
|
+
items?: Record<string, unknown>[];
|
|
45
|
+
meta?: Record<string, unknown>;
|
|
46
|
+
}
|
|
26
47
|
export interface ChatSession {
|
|
27
48
|
id: string;
|
|
28
49
|
title?: string;
|
|
@@ -10,11 +10,16 @@ interface QuickOption {
|
|
|
10
10
|
interface FilterDateRangeProps extends BaseFilterProps {
|
|
11
11
|
value?: [string, string] | null;
|
|
12
12
|
onChange?: (value: [string, string] | null) => void;
|
|
13
|
-
/**
|
|
13
|
+
/** 默认区间:与默认相同时视为未筛选(除非 showDefaultAsSelected) */
|
|
14
14
|
defaultValue?: [string, string];
|
|
15
|
+
/** 为 true 时,value 等于 defaultValue 仍展示在已选 Tag 中 */
|
|
16
|
+
showDefaultAsSelected?: boolean;
|
|
15
17
|
showQuickOptions?: boolean;
|
|
16
18
|
quickOptions?: QuickOption[];
|
|
17
19
|
}
|
|
20
|
+
declare function isSameRange(a?: [string, string] | null, b?: [string, string]): boolean;
|
|
21
|
+
declare function findMatchingQuickKey(range: [string, string] | null | undefined, opts: QuickOption[]): string | null;
|
|
18
22
|
declare const FilterDateRange: React.FC<FilterDateRangeProps>;
|
|
19
23
|
export default FilterDateRange;
|
|
20
24
|
export type { FilterDateRangeProps, QuickOption };
|
|
25
|
+
export { findMatchingQuickKey, isSameRange };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { DatePicker as
|
|
1
|
+
import { jsxs as T, jsx as N } from "react/jsx-runtime";
|
|
2
|
+
import { DatePicker as A } from "antd";
|
|
3
3
|
import s from "dayjs";
|
|
4
|
-
import { useState as
|
|
5
|
-
import
|
|
6
|
-
import { resolveHidden as
|
|
7
|
-
import { useFilterRegister as
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
const { RangePicker:
|
|
4
|
+
import { useState as q, useEffect as F, useMemo as L } from "react";
|
|
5
|
+
import W from "../FilterPopover/index.js";
|
|
6
|
+
import { resolveHidden as P } from "../types.js";
|
|
7
|
+
import { useFilterRegister as _ } from "../useFilterState.js";
|
|
8
|
+
import l from "./style.module.scss.js";
|
|
9
|
+
import w from "classnames";
|
|
10
|
+
const { RangePicker: $ } = A, g = [
|
|
11
11
|
{
|
|
12
12
|
key: "lastWeek",
|
|
13
13
|
label: "上周",
|
|
@@ -22,79 +22,99 @@ const { RangePicker: A } = Q, B = [
|
|
|
22
22
|
getValue: () => [s().startOf("week"), s().endOf("week")]
|
|
23
23
|
}
|
|
24
24
|
];
|
|
25
|
-
function
|
|
25
|
+
function h(e, r) {
|
|
26
26
|
return !(e != null && e[0]) || !(e != null && e[1]) ? !(r != null && r[0]) || !(r != null && r[1]) : !(r != null && r[0]) || !(r != null && r[1]) ? !1 : e[0] === r[0] && e[1] === r[1];
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
function u(e, r) {
|
|
29
|
+
if (!(e != null && e[0]) || !(e != null && e[1])) return null;
|
|
30
|
+
const t = s(e[0]), n = s(e[1]);
|
|
31
|
+
for (const k of r) {
|
|
32
|
+
const f = k.getValue();
|
|
33
|
+
if (f && f[0].isSame(t, "day") && f[1].isSame(n, "day"))
|
|
34
|
+
return k.key;
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const b = ({
|
|
29
39
|
filterKey: e,
|
|
30
40
|
label: r,
|
|
31
41
|
value: t,
|
|
32
42
|
onChange: n,
|
|
33
|
-
defaultValue:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
defaultValue: k,
|
|
44
|
+
showDefaultAsSelected: f = !1,
|
|
45
|
+
showQuickOptions: Q = !0,
|
|
46
|
+
quickOptions: j,
|
|
47
|
+
active: x,
|
|
48
|
+
hidden: y
|
|
38
49
|
}) => {
|
|
39
|
-
const [I,
|
|
50
|
+
const [I, D] = q(!1), [o, c] = q(
|
|
40
51
|
t ? [s(t[0]), s(t[1])] : null
|
|
41
|
-
), [
|
|
42
|
-
|
|
52
|
+
), [M, m] = q(null), d = _(), p = j ?? (Q ? g : []), R = (i) => {
|
|
53
|
+
m(u(i, p));
|
|
54
|
+
}, S = () => {
|
|
55
|
+
t != null && t[0] && (t != null && t[1]) ? (c([s(t[0]), s(t[1])]), R(t)) : (c(null), m(null));
|
|
43
56
|
};
|
|
44
|
-
|
|
45
|
-
t != null && t[0] && (t != null && t[1]) ? c([s(t[0]), s(t[1])]) : c(null);
|
|
46
|
-
}, [t]);
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
if (
|
|
50
|
-
if (
|
|
51
|
-
|
|
57
|
+
F(() => {
|
|
58
|
+
t != null && t[0] && (t != null && t[1]) ? (c([s(t[0]), s(t[1])]), R(t)) : (c(null), m(null));
|
|
59
|
+
}, [t, p]);
|
|
60
|
+
const O = f ? !!(t != null && t[0]) : !!(t != null && t[0]) && !h(t, k), Y = L(() => !O || !(t != null && t[0]) || !(t != null && t[1]) ? "" : `${t[0]} ~ ${t[1]}`, [O, t]);
|
|
61
|
+
return F(() => {
|
|
62
|
+
if (d) {
|
|
63
|
+
if (P(y)) {
|
|
64
|
+
d.unregister(e);
|
|
52
65
|
return;
|
|
53
66
|
}
|
|
54
|
-
|
|
67
|
+
Y ? d.register(e, { label: r, valueLabel: Y, onRemove: () => n == null ? void 0 : n(null) }) : d.unregister(e);
|
|
55
68
|
}
|
|
56
|
-
}, [
|
|
57
|
-
|
|
58
|
-
o != null && o[0] && (o != null && o[1]) ? n == null || n([o[0].format("YYYY-MM-DD"), o[1].format("YYYY-MM-DD")]) : n == null || n(null), p(!1);
|
|
59
|
-
}, T = () => {
|
|
60
|
-
N(), p(!1);
|
|
61
|
-
}, x = (i) => {
|
|
62
|
-
i || N(), p(i);
|
|
63
|
-
}, q = V ?? (P ? B : []);
|
|
64
|
-
return /* @__PURE__ */ L(
|
|
65
|
-
_,
|
|
69
|
+
}, [Y, e, r, y]), P(y) ? null : /* @__PURE__ */ T(
|
|
70
|
+
W,
|
|
66
71
|
{
|
|
67
72
|
label: r,
|
|
68
|
-
active:
|
|
73
|
+
active: x || O,
|
|
69
74
|
open: I,
|
|
70
|
-
onOpenChange:
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
onOpenChange: (i) => {
|
|
76
|
+
S(), D(i);
|
|
77
|
+
},
|
|
78
|
+
onConfirm: () => {
|
|
79
|
+
o != null && o[0] && (o != null && o[1]) ? n == null || n([o[0].format("YYYY-MM-DD"), o[1].format("YYYY-MM-DD")]) : n == null || n(null), D(!1);
|
|
80
|
+
},
|
|
81
|
+
onReset: () => {
|
|
82
|
+
S(), D(!1);
|
|
83
|
+
},
|
|
73
84
|
children: [
|
|
74
|
-
|
|
75
|
-
"
|
|
85
|
+
p.length > 0 && /* @__PURE__ */ N(
|
|
86
|
+
"div",
|
|
76
87
|
{
|
|
77
|
-
className:
|
|
78
|
-
"filter-date-range-quick-
|
|
79
|
-
|
|
80
|
-
y === i.key && "filter-date-range-quick-option-active",
|
|
81
|
-
y === i.key && m["filter-date-range-quick-option-active"]
|
|
88
|
+
className: w(
|
|
89
|
+
"filter-date-range-quick-options",
|
|
90
|
+
l["filter-date-range-quick-options"]
|
|
82
91
|
),
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
children: p.map((i) => /* @__PURE__ */ N(
|
|
93
|
+
"span",
|
|
94
|
+
{
|
|
95
|
+
className: w(
|
|
96
|
+
"filter-date-range-quick-option",
|
|
97
|
+
l["filter-date-range-quick-option"],
|
|
98
|
+
M === i.key && "filter-date-range-quick-option-active",
|
|
99
|
+
M === i.key && l["filter-date-range-quick-option-active"]
|
|
100
|
+
),
|
|
101
|
+
onClick: () => {
|
|
102
|
+
const V = i.getValue();
|
|
103
|
+
V && (c(V), m(i.key));
|
|
104
|
+
},
|
|
105
|
+
children: i.label
|
|
106
|
+
},
|
|
107
|
+
i.key
|
|
108
|
+
))
|
|
109
|
+
}
|
|
110
|
+
),
|
|
111
|
+
/* @__PURE__ */ N(
|
|
112
|
+
$,
|
|
93
113
|
{
|
|
94
|
-
className:
|
|
114
|
+
className: w("filter-date-range-picker", l["filter-date-range-picker"]),
|
|
95
115
|
value: o,
|
|
96
116
|
onChange: (i) => {
|
|
97
|
-
c(i),
|
|
117
|
+
c(i), m(null);
|
|
98
118
|
}
|
|
99
119
|
}
|
|
100
120
|
)
|
|
@@ -103,6 +123,8 @@ const a = ({
|
|
|
103
123
|
);
|
|
104
124
|
};
|
|
105
125
|
export {
|
|
106
|
-
|
|
126
|
+
b as default,
|
|
127
|
+
u as findMatchingQuickKey,
|
|
128
|
+
h as isSameRange
|
|
107
129
|
};
|
|
108
130
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Filter/FilterDateRange/index.tsx"],"sourcesContent":["import { DatePicker } from 'antd';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport FilterPopover from '../FilterPopover';\nimport type { BaseFilterProps } from '../types';\nimport { resolveHidden } from '../types';\nimport { useFilterRegister } from '../useFilterState';\nimport styles from './style.module.scss';\nimport classNames from 'classnames';\n\nconst { RangePicker } = DatePicker;\n\n/** 快捷选项配置类型 */\ninterface QuickOption {\n key: string;\n label: string;\n getValue: () => [Dayjs, Dayjs] | null;\n}\n\n/** 内置快捷选项 */\nconst BUILT_IN_OPTIONS: QuickOption[] = [\n {\n key: 'lastWeek',\n label: '上周',\n getValue: () => [\n dayjs().subtract(1, 'week').startOf('week'),\n dayjs().subtract(1, 'week').endOf('week'),\n ],\n },\n {\n key: 'thisWeek',\n label: '本周',\n getValue: () => [dayjs().startOf('week'), dayjs().endOf('week')],\n },\n];\n\ninterface FilterDateRangeProps extends BaseFilterProps {\n value?: [string, string] | null;\n onChange?: (value: [string, string] | null) => void;\n /** 默认区间:与默认相同时视为未筛选 */\n defaultValue?: [string, string];\n showQuickOptions?: boolean;\n quickOptions?: QuickOption[];\n}\n\nfunction isSameRange(a?: [string, string] | null, b?: [string, string]): boolean {\n if (!a?.[0] || !a?.[1]) return !b?.[0] || !b?.[1];\n if (!b?.[0] || !b?.[1]) return false;\n return a[0] === b[0] && a[1] === b[1];\n}\n\nconst FilterDateRange: React.FC<FilterDateRangeProps> = ({\n filterKey,\n label,\n value,\n onChange,\n defaultValue,\n showQuickOptions = true,\n quickOptions,\n active,\n hidden,\n}) => {\n const [open, setOpen] = useState(false);\n const [dates, setDates] = useState<[Dayjs | null, Dayjs | null] | null>(\n value ? [dayjs(value[0]), dayjs(value[1])] : null,\n );\n const [activeQuickKey, setActiveQuickKey] = useState<string | null>(null);\n\n const registerFn = useFilterRegister();\n\n const revertToCommitted = () => {\n if (value?.[0] && value?.[1]) {\n setDates([dayjs(value[0]), dayjs(value[1])]);\n } else {\n setDates(null);\n }\n setActiveQuickKey(null);\n };\n\n useEffect(() => {\n if (value?.[0] && value?.[1]) {\n setDates([dayjs(value[0]), dayjs(value[1])]);\n } else {\n setDates(null);\n }\n }, [value]);\n\n const hasNonDefaultValue = !!value?.[0] && !isSameRange(value, defaultValue);\n\n const valueLabel = useMemo(() => {\n if (!hasNonDefaultValue || !value?.[0] || !value?.[1]) return '';\n return `${value[0]} ~ ${value[1]}`;\n }, [hasNonDefaultValue, value]);\n\n useEffect(() => {\n if (!registerFn) return;\n if (resolveHidden(hidden)) {\n registerFn.unregister(filterKey);\n return;\n }\n if (valueLabel) {\n registerFn.register(filterKey, { label, valueLabel, onRemove: () => onChange?.(null) });\n } else {\n registerFn.unregister(filterKey);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueLabel, filterKey, label, hidden]);\n\n if (resolveHidden(hidden)) return null;\n\n const handleConfirm = () => {\n if (dates?.[0] && dates?.[1]) {\n onChange?.([dates[0].format('YYYY-MM-DD'), dates[1].format('YYYY-MM-DD')]);\n } else {\n onChange?.(null);\n }\n setOpen(false);\n };\n\n const handleDiscardDraft = () => {\n revertToCommitted();\n setOpen(false);\n };\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (!nextOpen) {\n revertToCommitted();\n }\n setOpen(nextOpen);\n };\n\n const opts = quickOptions ?? (showQuickOptions ? BUILT_IN_OPTIONS : []);\n\n return (\n <FilterPopover\n label={label}\n active={active || hasNonDefaultValue}\n open={open}\n onOpenChange={handleOpenChange}\n onConfirm={handleConfirm}\n onReset={handleDiscardDraft}\n >\n {opts.length > 0 && (\n <div className={classNames('filter-date-range-quick-options', styles['filter-date-range-quick-options'])}>\n {opts.map((opt) => (\n <span\n key={opt.key}\n className={classNames('filter-date-range-quick-option', styles['filter-date-range-quick-option'],\n activeQuickKey === opt.key && 'filter-date-range-quick-option-active',\n activeQuickKey === opt.key && styles['filter-date-range-quick-option-active'],\n )}\n onClick={() => {\n const v = opt.getValue();\n if (v) {\n setDates(v);\n setActiveQuickKey(opt.key);\n }\n }}\n >\n {opt.label}\n </span>\n ))}\n </div>\n )}\n <RangePicker\n className={classNames('filter-date-range-picker', styles['filter-date-range-picker'])}\n value={dates}\n onChange={(vals) => {\n setDates(vals as [Dayjs | null, Dayjs | null] | null);\n setActiveQuickKey(null);\n }}\n />\n </FilterPopover>\n );\n};\n\nexport default FilterDateRange;\nexport type { FilterDateRangeProps, QuickOption };\n"],"names":["RangePicker","DatePicker","BUILT_IN_OPTIONS","dayjs","isSameRange","a","b","FilterDateRange","filterKey","label","value","onChange","defaultValue","showQuickOptions","quickOptions","active","hidden","open","setOpen","useState","dates","setDates","activeQuickKey","setActiveQuickKey","registerFn","useFilterRegister","revertToCommitted","useEffect","hasNonDefaultValue","valueLabel","useMemo","resolveHidden","handleConfirm","handleDiscardDraft","handleOpenChange","nextOpen","opts","jsxs","FilterPopover","jsx","classNames","styles","opt","v","vals"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Filter/FilterDateRange/index.tsx"],"sourcesContent":["import { DatePicker } from 'antd';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport FilterPopover from '../FilterPopover';\nimport type { BaseFilterProps } from '../types';\nimport { resolveHidden } from '../types';\nimport { useFilterRegister } from '../useFilterState';\nimport styles from './style.module.scss';\nimport classNames from 'classnames';\n\nconst { RangePicker } = DatePicker;\n\n/** 快捷选项配置类型 */\ninterface QuickOption {\n key: string;\n label: string;\n getValue: () => [Dayjs, Dayjs] | null;\n}\n\n/** 内置快捷选项 */\nconst BUILT_IN_OPTIONS: QuickOption[] = [\n {\n key: 'lastWeek',\n label: '上周',\n getValue: () => [\n dayjs().subtract(1, 'week').startOf('week'),\n dayjs().subtract(1, 'week').endOf('week'),\n ],\n },\n {\n key: 'thisWeek',\n label: '本周',\n getValue: () => [dayjs().startOf('week'), dayjs().endOf('week')],\n },\n];\n\ninterface FilterDateRangeProps extends BaseFilterProps {\n value?: [string, string] | null;\n onChange?: (value: [string, string] | null) => void;\n /** 默认区间:与默认相同时视为未筛选(除非 showDefaultAsSelected) */\n defaultValue?: [string, string];\n /** 为 true 时,value 等于 defaultValue 仍展示在已选 Tag 中 */\n showDefaultAsSelected?: boolean;\n showQuickOptions?: boolean;\n quickOptions?: QuickOption[];\n}\n\nfunction isSameRange(a?: [string, string] | null, b?: [string, string]): boolean {\n if (!a?.[0] || !a?.[1]) return !b?.[0] || !b?.[1];\n if (!b?.[0] || !b?.[1]) return false;\n return a[0] === b[0] && a[1] === b[1];\n}\n\nfunction findMatchingQuickKey(\n range: [string, string] | null | undefined,\n opts: QuickOption[],\n): string | null {\n if (!range?.[0] || !range?.[1]) return null;\n const start = dayjs(range[0]);\n const end = dayjs(range[1]);\n for (const opt of opts) {\n const v = opt.getValue();\n if (v && v[0].isSame(start, 'day') && v[1].isSame(end, 'day')) {\n return opt.key;\n }\n }\n return null;\n}\n\nconst FilterDateRange: React.FC<FilterDateRangeProps> = ({\n filterKey,\n label,\n value,\n onChange,\n defaultValue,\n showDefaultAsSelected = false,\n showQuickOptions = true,\n quickOptions,\n active,\n hidden,\n}) => {\n const [open, setOpen] = useState(false);\n const [dates, setDates] = useState<[Dayjs | null, Dayjs | null] | null>(\n value ? [dayjs(value[0]), dayjs(value[1])] : null,\n );\n const [activeQuickKey, setActiveQuickKey] = useState<string | null>(null);\n\n const registerFn = useFilterRegister();\n const opts = quickOptions ?? (showQuickOptions ? BUILT_IN_OPTIONS : []);\n\n const syncActiveQuickKey = (range: [string, string] | null | undefined) => {\n setActiveQuickKey(findMatchingQuickKey(range, opts));\n };\n\n const revertToCommitted = () => {\n if (value?.[0] && value?.[1]) {\n setDates([dayjs(value[0]), dayjs(value[1])]);\n syncActiveQuickKey(value);\n } else {\n setDates(null);\n setActiveQuickKey(null);\n }\n };\n\n useEffect(() => {\n if (value?.[0] && value?.[1]) {\n setDates([dayjs(value[0]), dayjs(value[1])]);\n syncActiveQuickKey(value);\n } else {\n setDates(null);\n setActiveQuickKey(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, opts]);\n\n const hasNonDefaultValue = showDefaultAsSelected\n ? !!value?.[0]\n : !!value?.[0] && !isSameRange(value, defaultValue);\n\n const valueLabel = useMemo(() => {\n if (!hasNonDefaultValue || !value?.[0] || !value?.[1]) return '';\n return `${value[0]} ~ ${value[1]}`;\n }, [hasNonDefaultValue, value]);\n\n useEffect(() => {\n if (!registerFn) return;\n if (resolveHidden(hidden)) {\n registerFn.unregister(filterKey);\n return;\n }\n if (valueLabel) {\n registerFn.register(filterKey, { label, valueLabel, onRemove: () => onChange?.(null) });\n } else {\n registerFn.unregister(filterKey);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueLabel, filterKey, label, hidden]);\n\n if (resolveHidden(hidden)) return null;\n\n const handleConfirm = () => {\n if (dates?.[0] && dates?.[1]) {\n onChange?.([dates[0].format('YYYY-MM-DD'), dates[1].format('YYYY-MM-DD')]);\n } else {\n onChange?.(null);\n }\n setOpen(false);\n };\n\n const handleDiscardDraft = () => {\n revertToCommitted();\n setOpen(false);\n };\n\n const handleOpenChange = (nextOpen: boolean) => {\n revertToCommitted();\n setOpen(nextOpen);\n };\n\n return (\n <FilterPopover\n label={label}\n active={active || hasNonDefaultValue}\n open={open}\n onOpenChange={handleOpenChange}\n onConfirm={handleConfirm}\n onReset={handleDiscardDraft}\n >\n {opts.length > 0 && (\n <div\n className={classNames(\n 'filter-date-range-quick-options',\n styles['filter-date-range-quick-options'],\n )}\n >\n {opts.map((opt) => (\n <span\n key={opt.key}\n className={classNames(\n 'filter-date-range-quick-option',\n styles['filter-date-range-quick-option'],\n activeQuickKey === opt.key && 'filter-date-range-quick-option-active',\n activeQuickKey === opt.key && styles['filter-date-range-quick-option-active'],\n )}\n onClick={() => {\n const v = opt.getValue();\n if (v) {\n setDates(v);\n setActiveQuickKey(opt.key);\n }\n }}\n >\n {opt.label}\n </span>\n ))}\n </div>\n )}\n <RangePicker\n className={classNames('filter-date-range-picker', styles['filter-date-range-picker'])}\n value={dates}\n onChange={(vals) => {\n setDates(vals as [Dayjs | null, Dayjs | null] | null);\n setActiveQuickKey(null);\n }}\n />\n </FilterPopover>\n );\n};\n\nexport default FilterDateRange;\nexport type { FilterDateRangeProps, QuickOption };\nexport { findMatchingQuickKey, isSameRange };\n"],"names":["RangePicker","DatePicker","BUILT_IN_OPTIONS","dayjs","isSameRange","a","b","findMatchingQuickKey","range","opts","start","end","opt","v","FilterDateRange","filterKey","label","value","onChange","defaultValue","showDefaultAsSelected","showQuickOptions","quickOptions","active","hidden","open","setOpen","useState","dates","setDates","activeQuickKey","setActiveQuickKey","registerFn","useFilterRegister","syncActiveQuickKey","revertToCommitted","useEffect","hasNonDefaultValue","valueLabel","useMemo","resolveHidden","jsxs","FilterPopover","nextOpen","jsx","classNames","styles","vals"],"mappings":"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"}
|
|
@@ -51,8 +51,10 @@ export declare const LayoutGrid: React.ForwardRefExoticComponent<Omit<IconProps,
|
|
|
51
51
|
export declare const Loader2: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
52
52
|
export declare const Lock: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
53
53
|
export declare const LogOut: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
54
|
+
export declare const Maximize2: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
54
55
|
export declare const MessageCircle: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
55
56
|
export declare const MessageSquare: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
57
|
+
export declare const Minimize2: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
56
58
|
export declare const PanelLeftClose: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
57
59
|
export declare const PanelLeftOpen: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
58
60
|
export declare const Pause: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
@@ -80,6 +82,6 @@ export declare const UserRoundCog: React.ForwardRefExoticComponent<Omit<IconProp
|
|
|
80
82
|
export declare const Users: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
81
83
|
export declare const X: React.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
82
84
|
export { createIcon };
|
|
83
|
-
export declare const ICON_NAMES: readonly ["ArrowLeft", "ArrowLeftRight", "BarChart3", "BookOpen", "Bot", "Check", "ChevronDown", "ChevronLeft", "ChevronRight", "ChevronUp", "CircleAlert", "CircleCheck", "CircleHelp", "CirclePlay", "CircleX", "ClipboardCheck", "Clock", "CloudDownload", "CloudUpload", "Code", "Copy", "Crown", "Database", "Download", "Eye", "File", "FileArchive", "FileImage", "FileSpreadsheet", "FileText", "Flag", "Flame", "Folder", "FolderOpen", "Hash", "House", "Import", "Inbox", "Info", "LayoutDashboard", "LayoutGrid", "Loader2", "Lock", "LogOut", "MessageCircle", "MessageSquare", "PanelLeftClose", "PanelLeftOpen", "Pause", "Pencil", "Plus", "Presentation", "RefreshCw", "RotateCw", "Send", "Settings", "Shield", "ShieldCheck", "SlidersHorizontal", "Square", "Star", "ThumbsDown", "ThumbsUp", "Trash2", "Trophy", "Undo2", "Upload", "User", "UserPlus", "UserRoundCog", "Users", "X"];
|
|
85
|
+
export declare const ICON_NAMES: readonly ["ArrowLeft", "ArrowLeftRight", "BarChart3", "BookOpen", "Bot", "Check", "ChevronDown", "ChevronLeft", "ChevronRight", "ChevronUp", "CircleAlert", "CircleCheck", "CircleHelp", "CirclePlay", "CircleX", "ClipboardCheck", "Clock", "CloudDownload", "CloudUpload", "Code", "Copy", "Crown", "Database", "Download", "Eye", "File", "FileArchive", "FileImage", "FileSpreadsheet", "FileText", "Flag", "Flame", "Folder", "FolderOpen", "Hash", "House", "Import", "Inbox", "Info", "LayoutDashboard", "LayoutGrid", "Loader2", "Lock", "LogOut", "Maximize2", "MessageCircle", "MessageSquare", "Minimize2", "PanelLeftClose", "PanelLeftOpen", "Pause", "Pencil", "Plus", "Presentation", "RefreshCw", "RotateCw", "Send", "Settings", "Shield", "ShieldCheck", "SlidersHorizontal", "Square", "Star", "ThumbsDown", "ThumbsUp", "Trash2", "Trophy", "Undo2", "Upload", "User", "UserPlus", "UserRoundCog", "Users", "X"];
|
|
84
86
|
export type IconName = (typeof ICON_NAMES)[number];
|
|
85
87
|
export declare const ICON_REGISTRY: Record<IconName, React.FC<IconProps>>;
|