@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.
Files changed (62) hide show
  1. package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/index.d.ts +24 -0
  2. package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/index.js +95 -0
  3. package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/index.js.map +1 -0
  4. package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/style.module.scss.js +15 -0
  5. package/dist/components/AgentHub/Chat/Detail/ChatAgentFab/style.module.scss.js.map +1 -0
  6. package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/index.d.ts +16 -0
  7. package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/index.js +37 -0
  8. package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/index.js.map +1 -0
  9. package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/style.module.scss.js +9 -0
  10. package/dist/components/AgentHub/Chat/Detail/ChatAgentFabLayout/style.module.scss.js.map +1 -0
  11. package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/index.d.ts +14 -0
  12. package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/index.js +79 -0
  13. package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/index.js.map +1 -0
  14. package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/style.module.scss.js +18 -0
  15. package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/style.module.scss.js.map +1 -0
  16. package/dist/components/AgentHub/Chat/Detail/ChatInput/index.d.ts +2 -0
  17. package/dist/components/AgentHub/Chat/Detail/ChatInput/index.js +60 -49
  18. package/dist/components/AgentHub/Chat/Detail/ChatInput/index.js.map +1 -1
  19. package/dist/components/AgentHub/Chat/Detail/ChatInput/style.module.scss.js +7 -6
  20. package/dist/components/AgentHub/Chat/Detail/ChatInput/style.module.scss.js.map +1 -1
  21. package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.d.ts +17 -4
  22. package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.js +104 -68
  23. package/dist/components/AgentHub/Chat/Detail/ChatPanel/index.js.map +1 -1
  24. package/dist/components/AgentHub/Chat/Detail/ChatPanel/style.module.scss.js +13 -8
  25. package/dist/components/AgentHub/Chat/Detail/ChatPanel/style.module.scss.js.map +1 -1
  26. package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/index.js +5 -4
  27. package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/index.js.map +1 -1
  28. package/dist/components/AgentHub/Chat/Detail/ChatSuggestionRow/style.module.scss.js +2 -2
  29. package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/ChatWidgetSparkline.d.ts +7 -0
  30. package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/ChatWidgetSparkline.js +55 -0
  31. package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/ChatWidgetSparkline.js.map +1 -0
  32. package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/index.d.ts +10 -0
  33. package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/index.js +120 -0
  34. package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/index.js.map +1 -0
  35. package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/style.module.scss.js +32 -0
  36. package/dist/components/AgentHub/Chat/Detail/ChatWidgetBlock/style.module.scss.js.map +1 -0
  37. package/dist/components/AgentHub/Chat/Detail/CitationContent/style.module.scss.js +2 -2
  38. package/dist/components/AgentHub/Chat/Detail/MessageItem/index.js +130 -114
  39. package/dist/components/AgentHub/Chat/Detail/MessageItem/index.js.map +1 -1
  40. package/dist/components/AgentHub/Chat/Detail/MessageItem/style.module.scss.js +20 -18
  41. package/dist/components/AgentHub/Chat/Detail/MessageItem/style.module.scss.js.map +1 -1
  42. package/dist/components/AgentHub/Chat/Detail/index.d.ts +8 -0
  43. package/dist/components/AgentHub/Chat/hooks/index.d.ts +2 -0
  44. package/dist/components/AgentHub/Chat/hooks/useCitationPanel.d.ts +11 -0
  45. package/dist/components/AgentHub/Chat/hooks/useCitationPanel.js +22 -0
  46. package/dist/components/AgentHub/Chat/hooks/useCitationPanel.js.map +1 -0
  47. package/dist/components/AgentHub/types.d.ts +21 -0
  48. package/dist/components/Filter/FilterDateRange/index.d.ts +6 -1
  49. package/dist/components/Filter/FilterDateRange/index.js +84 -62
  50. package/dist/components/Filter/FilterDateRange/index.js.map +1 -1
  51. package/dist/components/Icons/index.d.ts +3 -1
  52. package/dist/components/Icons/index.js +157 -151
  53. package/dist/components/Icons/index.js.map +1 -1
  54. package/dist/index.d.ts +1 -1
  55. package/dist/index.js +371 -355
  56. package/dist/index.js.map +1 -1
  57. package/dist/marsun-components-core.css +1 -1
  58. package/dist/styles/global.css +1 -1
  59. package/dist/utils/date.d.ts +12 -0
  60. package/dist/utils/date.js +29 -4
  61. package/dist/utils/date.js.map +1 -1
  62. 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 L, jsx as g } from "react/jsx-runtime";
2
- import { DatePicker as Q } from "antd";
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 O, useEffect as R, useMemo as W } from "react";
5
- import _ from "../FilterPopover/index.js";
6
- import { resolveHidden as M } from "../types.js";
7
- import { useFilterRegister as $ } from "../useFilterState.js";
8
- import m from "./style.module.scss.js";
9
- import Y from "classnames";
10
- const { RangePicker: A } = Q, B = [
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 E(e, r) {
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
- const a = ({
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: F,
34
- showQuickOptions: P = !0,
35
- quickOptions: V,
36
- active: j,
37
- hidden: k
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, p] = O(!1), [o, c] = O(
50
+ const [I, D] = q(!1), [o, c] = q(
40
51
  t ? [s(t[0]), s(t[1])] : null
41
- ), [y, d] = O(null), f = $(), N = () => {
42
- t != null && t[0] && (t != null && t[1]) ? c([s(t[0]), s(t[1])]) : c(null), d(null);
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
- R(() => {
45
- t != null && t[0] && (t != null && t[1]) ? c([s(t[0]), s(t[1])]) : c(null);
46
- }, [t]);
47
- const l = !!(t != null && t[0]) && !E(t, F), D = W(() => !l || !(t != null && t[0]) || !(t != null && t[1]) ? "" : `${t[0]} ~ ${t[1]}`, [l, t]);
48
- if (R(() => {
49
- if (f) {
50
- if (M(k)) {
51
- f.unregister(e);
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
- D ? f.register(e, { label: r, valueLabel: D, onRemove: () => n == null ? void 0 : n(null) }) : f.unregister(e);
67
+ Y ? d.register(e, { label: r, valueLabel: Y, onRemove: () => n == null ? void 0 : n(null) }) : d.unregister(e);
55
68
  }
56
- }, [D, e, r, k]), M(k)) return null;
57
- const S = () => {
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: j || l,
73
+ active: x || O,
69
74
  open: I,
70
- onOpenChange: x,
71
- onConfirm: S,
72
- onReset: T,
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
- q.length > 0 && /* @__PURE__ */ g("div", { className: Y("filter-date-range-quick-options", m["filter-date-range-quick-options"]), children: q.map((i) => /* @__PURE__ */ g(
75
- "span",
85
+ p.length > 0 && /* @__PURE__ */ N(
86
+ "div",
76
87
  {
77
- className: Y(
78
- "filter-date-range-quick-option",
79
- m["filter-date-range-quick-option"],
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
- onClick: () => {
84
- const w = i.getValue();
85
- w && (c(w), d(i.key));
86
- },
87
- children: i.label
88
- },
89
- i.key
90
- )) }),
91
- /* @__PURE__ */ g(
92
- A,
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: Y("filter-date-range-picker", m["filter-date-range-picker"]),
114
+ className: w("filter-date-range-picker", l["filter-date-range-picker"]),
95
115
  value: o,
96
116
  onChange: (i) => {
97
- c(i), d(null);
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
- a as default
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>>;