@hkyhy/marsun-components-core 0.1.52 → 0.1.53
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/README.md +23 -15
- package/dist/agent-hub.d.ts +11 -0
- package/dist/agent-hub.js +144 -0
- package/dist/agent-hub.js.map +1 -0
- package/dist/components/AgentHub/Chat/Action/CreateButton.js +3 -3
- package/dist/components/AgentHub/Chat/Action/ManageActionButtons.js +4 -4
- package/dist/components/AgentHub/Chat/Action/SessionActionButtons.js +4 -4
- package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/index.js +29 -27
- package/dist/components/AgentHub/Chat/Detail/ChatFollowUpSuggestions/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/ChatInput/index.js +19 -18
- package/dist/components/AgentHub/Chat/Detail/ChatInput/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/CitationPanel/index.js +18 -17
- package/dist/components/AgentHub/Chat/Detail/CitationPanel/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/MessageActions/index.js +23 -19
- package/dist/components/AgentHub/Chat/Detail/MessageActions/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/Detail/MessageItem/index.js +23 -21
- package/dist/components/AgentHub/Chat/Detail/MessageItem/index.js.map +1 -1
- package/dist/components/AgentHub/Chat/List/ChatCard/index.js +7 -7
- package/dist/components/AgentHub/Chat/List/SessionSidebar/index.js +19 -17
- package/dist/components/AgentHub/Chat/List/SessionSidebar/index.js.map +1 -1
- package/dist/components/AgentHub/KnowledgeBase/Action/CreateButton.js +3 -3
- package/dist/components/AgentHub/KnowledgeBase/Action/ManageActionButtons.js +1 -1
- package/dist/components/AgentHub/KnowledgeBase/Detail/DocumentTable/index.js +16 -15
- package/dist/components/AgentHub/KnowledgeBase/Detail/DocumentTable/index.js.map +1 -1
- package/dist/components/AgentHub/KnowledgeBase/Detail/ParseStatusTag/index.js +7 -7
- package/dist/components/AgentHub/KnowledgeBase/List/KnowledgeCard/index.js +8 -8
- package/dist/components/AgentHub/Report/Detail/ReportHtmlPreview/index.js +1 -1
- package/dist/components/Auth/UserProfileCard/UserProfileCard.js +7 -7
- package/dist/components/File/FileItem/index.js +22 -20
- package/dist/components/File/FileItem/index.js.map +1 -1
- package/dist/components/File/FilePreview/index.js +11 -11
- package/dist/components/File/fileDisplay.js +41 -36
- package/dist/components/File/fileDisplay.js.map +1 -1
- package/dist/components/Filter/CommonFilter/index.js +20 -18
- package/dist/components/Filter/CommonFilter/index.js.map +1 -1
- package/dist/components/Filter/FilterSelect/index.js +90 -89
- package/dist/components/Filter/FilterSelect/index.js.map +1 -1
- package/dist/components/Filter/FilterTreeSelect/index.js +51 -48
- package/dist/components/Filter/FilterTreeSelect/index.js.map +1 -1
- package/dist/components/Filter/FilterTrigger/index.js +13 -11
- package/dist/components/Filter/FilterTrigger/index.js.map +1 -1
- package/dist/components/Form/PersonOptionRow/index.js +4 -4
- package/dist/components/Icons/ArrowLeft.d.ts +1 -0
- package/dist/components/Icons/ArrowLeft.js +7 -0
- package/dist/components/Icons/ArrowLeft.js.map +1 -0
- package/dist/components/Icons/ArrowLeftRight.d.ts +1 -0
- package/dist/components/Icons/ArrowLeftRight.js +7 -0
- package/dist/components/Icons/ArrowLeftRight.js.map +1 -0
- package/dist/components/Icons/BarChart3.d.ts +1 -0
- package/dist/components/Icons/BarChart3.js +7 -0
- package/dist/components/Icons/BarChart3.js.map +1 -0
- package/dist/components/Icons/Bell.d.ts +1 -0
- package/dist/components/Icons/Bell.js +7 -0
- package/dist/components/Icons/Bell.js.map +1 -0
- package/dist/components/Icons/BookOpen.d.ts +1 -0
- package/dist/components/Icons/BookOpen.js +7 -0
- package/dist/components/Icons/BookOpen.js.map +1 -0
- package/dist/components/Icons/Bot.d.ts +1 -0
- package/dist/components/Icons/Bot.js +7 -0
- package/dist/components/Icons/Bot.js.map +1 -0
- package/dist/components/Icons/Check.d.ts +1 -0
- package/dist/components/Icons/Check.js +7 -0
- package/dist/components/Icons/Check.js.map +1 -0
- package/dist/components/Icons/ChevronDown.d.ts +1 -0
- package/dist/components/Icons/ChevronDown.js +7 -0
- package/dist/components/Icons/ChevronDown.js.map +1 -0
- package/dist/components/Icons/ChevronLeft.d.ts +1 -0
- package/dist/components/Icons/ChevronLeft.js +7 -0
- package/dist/components/Icons/ChevronLeft.js.map +1 -0
- package/dist/components/Icons/ChevronRight.d.ts +1 -0
- package/dist/components/Icons/ChevronRight.js +7 -0
- package/dist/components/Icons/ChevronRight.js.map +1 -0
- package/dist/components/Icons/ChevronUp.d.ts +1 -0
- package/dist/components/Icons/ChevronUp.js +7 -0
- package/dist/components/Icons/ChevronUp.js.map +1 -0
- package/dist/components/Icons/CircleAlert.d.ts +1 -0
- package/dist/components/Icons/CircleAlert.js +7 -0
- package/dist/components/Icons/CircleAlert.js.map +1 -0
- package/dist/components/Icons/CircleCheck.d.ts +1 -0
- package/dist/components/Icons/CircleCheck.js +7 -0
- package/dist/components/Icons/CircleCheck.js.map +1 -0
- package/dist/components/Icons/CircleHelp.d.ts +1 -0
- package/dist/components/Icons/CircleHelp.js +7 -0
- package/dist/components/Icons/CircleHelp.js.map +1 -0
- package/dist/components/Icons/CirclePlay.d.ts +1 -0
- package/dist/components/Icons/CirclePlay.js +7 -0
- package/dist/components/Icons/CirclePlay.js.map +1 -0
- package/dist/components/Icons/CircleX.d.ts +1 -0
- package/dist/components/Icons/CircleX.js +7 -0
- package/dist/components/Icons/CircleX.js.map +1 -0
- package/dist/components/Icons/ClipboardCheck.d.ts +1 -0
- package/dist/components/Icons/ClipboardCheck.js +7 -0
- package/dist/components/Icons/ClipboardCheck.js.map +1 -0
- package/dist/components/Icons/Clock.d.ts +1 -0
- package/dist/components/Icons/Clock.js +7 -0
- package/dist/components/Icons/Clock.js.map +1 -0
- package/dist/components/Icons/CloudDownload.d.ts +1 -0
- package/dist/components/Icons/CloudDownload.js +7 -0
- package/dist/components/Icons/CloudDownload.js.map +1 -0
- package/dist/components/Icons/CloudUpload.d.ts +1 -0
- package/dist/components/Icons/CloudUpload.js +7 -0
- package/dist/components/Icons/CloudUpload.js.map +1 -0
- package/dist/components/Icons/Code.d.ts +1 -0
- package/dist/components/Icons/Code.js +7 -0
- package/dist/components/Icons/Code.js.map +1 -0
- package/dist/components/Icons/Copy.d.ts +1 -0
- package/dist/components/Icons/Copy.js +7 -0
- package/dist/components/Icons/Copy.js.map +1 -0
- package/dist/components/Icons/Crown.d.ts +1 -0
- package/dist/components/Icons/Crown.js +7 -0
- package/dist/components/Icons/Crown.js.map +1 -0
- package/dist/components/Icons/Database.d.ts +1 -0
- package/dist/components/Icons/Database.js +7 -0
- package/dist/components/Icons/Database.js.map +1 -0
- package/dist/components/Icons/Download.d.ts +1 -0
- package/dist/components/Icons/Download.js +7 -0
- package/dist/components/Icons/Download.js.map +1 -0
- package/dist/components/Icons/Eye.d.ts +1 -0
- package/dist/components/Icons/Eye.js +7 -0
- package/dist/components/Icons/Eye.js.map +1 -0
- package/dist/components/Icons/EyeOff.d.ts +1 -0
- package/dist/components/Icons/EyeOff.js +7 -0
- package/dist/components/Icons/EyeOff.js.map +1 -0
- package/dist/components/Icons/File.d.ts +1 -0
- package/dist/components/Icons/File.js +7 -0
- package/dist/components/Icons/File.js.map +1 -0
- package/dist/components/Icons/FileArchive.d.ts +1 -0
- package/dist/components/Icons/FileArchive.js +7 -0
- package/dist/components/Icons/FileArchive.js.map +1 -0
- package/dist/components/Icons/FileImage.d.ts +1 -0
- package/dist/components/Icons/FileImage.js +7 -0
- package/dist/components/Icons/FileImage.js.map +1 -0
- package/dist/components/Icons/FileSpreadsheet.d.ts +1 -0
- package/dist/components/Icons/FileSpreadsheet.js +7 -0
- package/dist/components/Icons/FileSpreadsheet.js.map +1 -0
- package/dist/components/Icons/FileText.d.ts +1 -0
- package/dist/components/Icons/FileText.js +7 -0
- package/dist/components/Icons/FileText.js.map +1 -0
- package/dist/components/Icons/Flag.d.ts +1 -0
- package/dist/components/Icons/Flag.js +7 -0
- package/dist/components/Icons/Flag.js.map +1 -0
- package/dist/components/Icons/Flame.d.ts +1 -0
- package/dist/components/Icons/Flame.js +7 -0
- package/dist/components/Icons/Flame.js.map +1 -0
- package/dist/components/Icons/Folder.d.ts +1 -0
- package/dist/components/Icons/Folder.js +7 -0
- package/dist/components/Icons/Folder.js.map +1 -0
- package/dist/components/Icons/FolderOpen.d.ts +1 -0
- package/dist/components/Icons/FolderOpen.js +7 -0
- package/dist/components/Icons/FolderOpen.js.map +1 -0
- package/dist/components/Icons/Hash.d.ts +1 -0
- package/dist/components/Icons/Hash.js +7 -0
- package/dist/components/Icons/Hash.js.map +1 -0
- package/dist/components/Icons/House.d.ts +1 -0
- package/dist/components/Icons/House.js +7 -0
- package/dist/components/Icons/House.js.map +1 -0
- package/dist/components/Icons/Import.d.ts +1 -0
- package/dist/components/Icons/Import.js +7 -0
- package/dist/components/Icons/Import.js.map +1 -0
- package/dist/components/Icons/Inbox.d.ts +1 -0
- package/dist/components/Icons/Inbox.js +7 -0
- package/dist/components/Icons/Inbox.js.map +1 -0
- package/dist/components/Icons/Info.d.ts +1 -0
- package/dist/components/Icons/Info.js +7 -0
- package/dist/components/Icons/Info.js.map +1 -0
- package/dist/components/Icons/LayoutDashboard.d.ts +1 -0
- package/dist/components/Icons/LayoutDashboard.js +7 -0
- package/dist/components/Icons/LayoutDashboard.js.map +1 -0
- package/dist/components/Icons/LayoutGrid.d.ts +1 -0
- package/dist/components/Icons/LayoutGrid.js +7 -0
- package/dist/components/Icons/LayoutGrid.js.map +1 -0
- package/dist/components/Icons/ListTodo.d.ts +1 -0
- package/dist/components/Icons/ListTodo.js +7 -0
- package/dist/components/Icons/ListTodo.js.map +1 -0
- package/dist/components/Icons/Loader2.d.ts +1 -0
- package/dist/components/Icons/Loader2.js +7 -0
- package/dist/components/Icons/Loader2.js.map +1 -0
- package/dist/components/Icons/Lock.d.ts +1 -0
- package/dist/components/Icons/Lock.js +7 -0
- package/dist/components/Icons/Lock.js.map +1 -0
- package/dist/components/Icons/LogOut.d.ts +1 -0
- package/dist/components/Icons/LogOut.js +7 -0
- package/dist/components/Icons/LogOut.js.map +1 -0
- package/dist/components/Icons/Maximize2.d.ts +1 -0
- package/dist/components/Icons/Maximize2.js +7 -0
- package/dist/components/Icons/Maximize2.js.map +1 -0
- package/dist/components/Icons/MessageCircle.d.ts +1 -0
- package/dist/components/Icons/MessageCircle.js +7 -0
- package/dist/components/Icons/MessageCircle.js.map +1 -0
- package/dist/components/Icons/MessageSquare.d.ts +1 -0
- package/dist/components/Icons/MessageSquare.js +7 -0
- package/dist/components/Icons/MessageSquare.js.map +1 -0
- package/dist/components/Icons/Minimize2.d.ts +1 -0
- package/dist/components/Icons/Minimize2.js +7 -0
- package/dist/components/Icons/Minimize2.js.map +1 -0
- package/dist/components/Icons/PanelLeftClose.d.ts +1 -0
- package/dist/components/Icons/PanelLeftClose.js +7 -0
- package/dist/components/Icons/PanelLeftClose.js.map +1 -0
- package/dist/components/Icons/PanelLeftOpen.d.ts +1 -0
- package/dist/components/Icons/PanelLeftOpen.js +7 -0
- package/dist/components/Icons/PanelLeftOpen.js.map +1 -0
- package/dist/components/Icons/Pause.d.ts +1 -0
- package/dist/components/Icons/Pause.js +7 -0
- package/dist/components/Icons/Pause.js.map +1 -0
- package/dist/components/Icons/Pencil.d.ts +1 -0
- package/dist/components/Icons/Pencil.js +7 -0
- package/dist/components/Icons/Pencil.js.map +1 -0
- package/dist/components/Icons/Plus.d.ts +1 -0
- package/dist/components/Icons/Plus.js +7 -0
- package/dist/components/Icons/Plus.js.map +1 -0
- package/dist/components/Icons/Presentation.d.ts +1 -0
- package/dist/components/Icons/Presentation.js +7 -0
- package/dist/components/Icons/Presentation.js.map +1 -0
- package/dist/components/Icons/RefreshCw.d.ts +1 -0
- package/dist/components/Icons/RefreshCw.js +7 -0
- package/dist/components/Icons/RefreshCw.js.map +1 -0
- package/dist/components/Icons/RotateCw.d.ts +1 -0
- package/dist/components/Icons/RotateCw.js +7 -0
- package/dist/components/Icons/RotateCw.js.map +1 -0
- package/dist/components/Icons/Send.d.ts +1 -0
- package/dist/components/Icons/Send.js +7 -0
- package/dist/components/Icons/Send.js.map +1 -0
- package/dist/components/Icons/Settings.d.ts +1 -0
- package/dist/components/Icons/Settings.js +7 -0
- package/dist/components/Icons/Settings.js.map +1 -0
- package/dist/components/Icons/Shield.d.ts +1 -0
- package/dist/components/Icons/Shield.js +7 -0
- package/dist/components/Icons/Shield.js.map +1 -0
- package/dist/components/Icons/ShieldCheck.d.ts +1 -0
- package/dist/components/Icons/ShieldCheck.js +7 -0
- package/dist/components/Icons/ShieldCheck.js.map +1 -0
- package/dist/components/Icons/SlidersHorizontal.d.ts +1 -0
- package/dist/components/Icons/SlidersHorizontal.js +7 -0
- package/dist/components/Icons/SlidersHorizontal.js.map +1 -0
- package/dist/components/Icons/Square.d.ts +1 -0
- package/dist/components/Icons/Square.js +7 -0
- package/dist/components/Icons/Square.js.map +1 -0
- package/dist/components/Icons/Star.d.ts +1 -0
- package/dist/components/Icons/Star.js +7 -0
- package/dist/components/Icons/Star.js.map +1 -0
- package/dist/components/Icons/ThumbsDown.d.ts +1 -0
- package/dist/components/Icons/ThumbsDown.js +7 -0
- package/dist/components/Icons/ThumbsDown.js.map +1 -0
- package/dist/components/Icons/ThumbsUp.d.ts +1 -0
- package/dist/components/Icons/ThumbsUp.js +7 -0
- package/dist/components/Icons/ThumbsUp.js.map +1 -0
- package/dist/components/Icons/Trash2.d.ts +1 -0
- package/dist/components/Icons/Trash2.js +7 -0
- package/dist/components/Icons/Trash2.js.map +1 -0
- package/dist/components/Icons/Trophy.d.ts +1 -0
- package/dist/components/Icons/Trophy.js +7 -0
- package/dist/components/Icons/Trophy.js.map +1 -0
- package/dist/components/Icons/Undo2.d.ts +1 -0
- package/dist/components/Icons/Undo2.js +7 -0
- package/dist/components/Icons/Undo2.js.map +1 -0
- package/dist/components/Icons/Upload.d.ts +1 -0
- package/dist/components/Icons/Upload.js +7 -0
- package/dist/components/Icons/Upload.js.map +1 -0
- package/dist/components/Icons/User.d.ts +1 -0
- package/dist/components/Icons/User.js +7 -0
- package/dist/components/Icons/User.js.map +1 -0
- package/dist/components/Icons/UserPlus.d.ts +1 -0
- package/dist/components/Icons/UserPlus.js +7 -0
- package/dist/components/Icons/UserPlus.js.map +1 -0
- package/dist/components/Icons/UserRoundCog.d.ts +1 -0
- package/dist/components/Icons/UserRoundCog.js +7 -0
- package/dist/components/Icons/UserRoundCog.js.map +1 -0
- package/dist/components/Icons/Users.d.ts +1 -0
- package/dist/components/Icons/Users.js +7 -0
- package/dist/components/Icons/Users.js.map +1 -0
- package/dist/components/Icons/X.d.ts +1 -0
- package/dist/components/Icons/X.js +7 -0
- package/dist/components/Icons/X.js.map +1 -0
- package/dist/components/Icons/createIcon.d.ts +9 -0
- package/dist/components/Icons/createIcon.js +32 -0
- package/dist/components/Icons/createIcon.js.map +1 -0
- package/dist/components/Icons/index.d.ts +80 -90
- package/dist/components/Icons/registry.d.ts +6 -0
- package/dist/components/Icons/registry.js +239 -0
- package/dist/components/Icons/registry.js.map +1 -0
- package/dist/components/InteractiveBlock/InteractiveBlock.js +6 -6
- package/dist/components/Layout/AgentAppShell/AgentAppShell.js +24 -23
- package/dist/components/Layout/AgentAppShell/AgentAppShell.js.map +1 -1
- package/dist/components/Layout/PageHeaderLayout/index.js +7 -7
- package/dist/components/Modal/Modal/index.js +8 -8
- package/dist/components/Modal/StepModal/index.js +9 -9
- package/dist/components/OrgTree/OrgTree.js +41 -39
- package/dist/components/OrgTree/OrgTree.js.map +1 -1
- package/dist/components/StateBar/StateBar.js +4 -4
- package/dist/components/Table/ColumnConfigPanel.js +13 -10
- package/dist/components/Table/ColumnConfigPanel.js.map +1 -1
- package/dist/components/Table/Table.js +7 -7
- package/dist/components/Tour/AppTour/index.js +10 -10
- package/dist/components/Upload/index.js +76 -72
- package/dist/components/Upload/index.js.map +1 -1
- package/dist/file.d.ts +5 -0
- package/dist/file.js +24 -0
- package/dist/file.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +615 -537
- package/dist/index.js.map +1 -1
- package/dist/llm.d.ts +5 -0
- package/dist/llm.js +8 -0
- package/dist/llm.js.map +1 -0
- package/dist/marsun-components-core.css +1 -1
- package/dist/styles/global.css +1 -1
- package/package.json +15 -5
- package/dist/components/Icons/index.js +0 -268
- package/dist/components/Icons/index.js.map +0 -1
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { jsxs as H, jsx as f } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { Input as Ae, Spin as je, Checkbox as Ue, Space as Ve } from "antd";
|
|
2
|
+
import { useFetchData as Te } from "../../../hooks/useFetchData.js";
|
|
3
|
+
import { Input as ye, Spin as ze, Checkbox as Pe, Space as Re } from "antd";
|
|
5
4
|
import R from "classnames";
|
|
6
5
|
import { useRef as oe, useState as A, useEffect as W, useMemo as E, useCallback as X } from "react";
|
|
7
|
-
import
|
|
6
|
+
import Ae from "../FilterPopover/index.js";
|
|
8
7
|
import { resolveFilterVisible as ae } from "../types.js";
|
|
9
|
-
import { useFilterFieldBridge as
|
|
8
|
+
import { useFilterFieldBridge as je, useFilterRegister as Ue } from "../useFilterState.js";
|
|
10
9
|
import g from "./style.module.scss.js";
|
|
11
|
-
import { useMarsunFetch as
|
|
12
|
-
import
|
|
13
|
-
|
|
10
|
+
import { useMarsunFetch as Ve } from "../../../provider/context.js";
|
|
11
|
+
import Be from "../../Empty/Empty.js";
|
|
12
|
+
import { ChevronDown as He } from "../../Icons/ChevronDown.js";
|
|
13
|
+
import { ChevronRight as We } from "../../Icons/ChevronRight.js";
|
|
14
|
+
import { Check as Xe } from "../../Icons/Check.js";
|
|
15
|
+
import { X as $e } from "../../Icons/X.js";
|
|
16
|
+
const { Search: qe } = ye;
|
|
14
17
|
function fe(u, v = 0, p = null) {
|
|
15
18
|
var N;
|
|
16
19
|
const d = [];
|
|
@@ -46,7 +49,7 @@ function Ge(u, v) {
|
|
|
46
49
|
};
|
|
47
50
|
return d(u), p;
|
|
48
51
|
}
|
|
49
|
-
const
|
|
52
|
+
const nt = ({
|
|
50
53
|
filterKey: u,
|
|
51
54
|
label: v,
|
|
52
55
|
treeData: p,
|
|
@@ -72,7 +75,7 @@ const rt = ({
|
|
|
72
75
|
}) => {
|
|
73
76
|
const z = oe(a);
|
|
74
77
|
z.current = a;
|
|
75
|
-
const ve = me ?? (C ? 460 : void 0), { resolvedLabel: j, values: xe, depsKey: we } =
|
|
78
|
+
const ve = me ?? (C ? 460 : void 0), { resolvedLabel: j, values: xe, depsKey: we } = je({
|
|
76
79
|
filterKey: u,
|
|
77
80
|
value: h,
|
|
78
81
|
label: v,
|
|
@@ -82,7 +85,7 @@ const rt = ({
|
|
|
82
85
|
var e;
|
|
83
86
|
return (e = z.current) == null ? void 0 : e.call(z, n ? [] : void 0);
|
|
84
87
|
}
|
|
85
|
-
}), G =
|
|
88
|
+
}), G = Ve(), te = p != null || !b && !!d, { data: be, loading: Me } = Te({
|
|
86
89
|
data: p,
|
|
87
90
|
fetchUrl: te && !b ? d : void 0,
|
|
88
91
|
fetchOptions: N,
|
|
@@ -108,13 +111,13 @@ const rt = ({
|
|
|
108
111
|
e = !0;
|
|
109
112
|
};
|
|
110
113
|
}, [we, F, p, b]);
|
|
111
|
-
const M = p ?? (b ? Se : be ?? []),
|
|
114
|
+
const M = p ?? (b ? Se : be ?? []), ie = ge || Me || Le, [ke, V] = A(!1), [x, w] = A(
|
|
112
115
|
h ?? (n ? [] : void 0)
|
|
113
|
-
), [Q,
|
|
116
|
+
), [Q, ce] = A(/* @__PURE__ */ new Set()), [T, Y] = A(""), U = Ue(), Z = { filterKey: u, label: j, value: h };
|
|
114
117
|
W(() => {
|
|
115
118
|
w(h ?? (n ? [] : void 0)), h == null && Y("");
|
|
116
119
|
}, [h, n]), W(() => {
|
|
117
|
-
M.length &&
|
|
120
|
+
M.length && ce(new Set(de(M)));
|
|
118
121
|
}, [M]);
|
|
119
122
|
const B = E(
|
|
120
123
|
() => Ge(M, ee),
|
|
@@ -165,11 +168,11 @@ const rt = ({
|
|
|
165
168
|
var r;
|
|
166
169
|
for (const s of o)
|
|
167
170
|
if ((r = s.children) != null && r.length) {
|
|
168
|
-
const
|
|
171
|
+
const i = [], l = (c) => {
|
|
169
172
|
var k;
|
|
170
|
-
|
|
173
|
+
i.push(c.id), (k = c.children) == null || k.forEach(l);
|
|
171
174
|
};
|
|
172
|
-
s.children.forEach(l), e.set(s.id,
|
|
175
|
+
s.children.forEach(l), e.set(s.id, i), t(s.children);
|
|
173
176
|
}
|
|
174
177
|
};
|
|
175
178
|
return t(S), e;
|
|
@@ -178,7 +181,7 @@ const rt = ({
|
|
|
178
181
|
var r;
|
|
179
182
|
for (const s of o)
|
|
180
183
|
if ((r = s.children) != null && r.length) {
|
|
181
|
-
for (const
|
|
184
|
+
for (const i of s.children) e.set(i.id, s.id);
|
|
182
185
|
t(s.children);
|
|
183
186
|
}
|
|
184
187
|
};
|
|
@@ -188,20 +191,20 @@ const rt = ({
|
|
|
188
191
|
var r;
|
|
189
192
|
for (const s of o) {
|
|
190
193
|
if (!((r = s.children) != null && r.length)) continue;
|
|
191
|
-
const
|
|
194
|
+
const i = [], l = (c) => {
|
|
192
195
|
var k;
|
|
193
|
-
if (!((k =
|
|
194
|
-
|
|
196
|
+
if (!((k = c.children) != null && k.length)) {
|
|
197
|
+
i.push(c.id);
|
|
195
198
|
return;
|
|
196
199
|
}
|
|
197
|
-
|
|
200
|
+
c.children.forEach(l);
|
|
198
201
|
};
|
|
199
|
-
s.children.forEach(l), e.set(s.id,
|
|
202
|
+
s.children.forEach(l), e.set(s.id, i), t(s.children);
|
|
200
203
|
}
|
|
201
204
|
};
|
|
202
205
|
return t(S), e;
|
|
203
206
|
}, [S]), I = X((e) => {
|
|
204
|
-
|
|
207
|
+
ce((t) => {
|
|
205
208
|
const o = new Set(t);
|
|
206
209
|
return o.has(e) ? o.delete(e) : o.add(e), o;
|
|
207
210
|
});
|
|
@@ -221,7 +224,7 @@ const rt = ({
|
|
|
221
224
|
if (L && (r != null && r.length)) {
|
|
222
225
|
if (r.every((l) => t.includes(l))) {
|
|
223
226
|
const l = new Set(r);
|
|
224
|
-
w(t.filter((
|
|
227
|
+
w(t.filter((c) => !l.has(c)));
|
|
225
228
|
} else
|
|
226
229
|
w([.../* @__PURE__ */ new Set([...t, ...r])]);
|
|
227
230
|
return;
|
|
@@ -229,17 +232,17 @@ const rt = ({
|
|
|
229
232
|
if (o)
|
|
230
233
|
if (t.includes(e)) {
|
|
231
234
|
const l = /* @__PURE__ */ new Set([e, ...o]);
|
|
232
|
-
w(t.filter((
|
|
235
|
+
w(t.filter((c) => !l.has(c)));
|
|
233
236
|
} else
|
|
234
237
|
w([.../* @__PURE__ */ new Set([...t, e, ...o])]);
|
|
235
238
|
else if (t.includes(e)) {
|
|
236
|
-
const
|
|
239
|
+
const i = t.filter((l) => l !== e);
|
|
237
240
|
w(
|
|
238
|
-
s &&
|
|
241
|
+
s && i.includes(s) ? i.filter((l) => l !== s) : i
|
|
239
242
|
);
|
|
240
243
|
} else {
|
|
241
|
-
const
|
|
242
|
-
s && !L && (K.get(s) || []).every((
|
|
244
|
+
const i = [...t, e];
|
|
245
|
+
s && !L && (K.get(s) || []).every((c) => i.includes(c)) ? w([.../* @__PURE__ */ new Set([...i, s])]) : w(i);
|
|
243
246
|
}
|
|
244
247
|
},
|
|
245
248
|
[x, K, le, L, D]
|
|
@@ -248,11 +251,11 @@ const rt = ({
|
|
|
248
251
|
[Q, y, T]
|
|
249
252
|
);
|
|
250
253
|
return ae({ display: q, hidden: $ }, Z) ? /* @__PURE__ */ H(
|
|
251
|
-
|
|
254
|
+
Ae,
|
|
252
255
|
{
|
|
253
256
|
label: j,
|
|
254
257
|
active: he || (n ? (x == null ? void 0 : x.length) > 0 : !!h),
|
|
255
|
-
loading:
|
|
258
|
+
loading: ie,
|
|
256
259
|
open: ke,
|
|
257
260
|
onOpenChange: V,
|
|
258
261
|
width: ve,
|
|
@@ -290,28 +293,28 @@ const rt = ({
|
|
|
290
293
|
"div",
|
|
291
294
|
{
|
|
292
295
|
className: R("filter-tree-select-options", g["filter-tree-select-options"]),
|
|
293
|
-
children:
|
|
296
|
+
children: ie ? /* @__PURE__ */ f(
|
|
294
297
|
"div",
|
|
295
298
|
{
|
|
296
299
|
className: R(
|
|
297
300
|
"filter-tree-select-loading",
|
|
298
301
|
g["filter-tree-select-loading"]
|
|
299
302
|
),
|
|
300
|
-
children: /* @__PURE__ */ f(
|
|
303
|
+
children: /* @__PURE__ */ f(ze, { size: "small" })
|
|
301
304
|
}
|
|
302
305
|
) : ne.length === 0 ? /* @__PURE__ */ f(
|
|
303
306
|
"div",
|
|
304
307
|
{
|
|
305
308
|
className: R("filter-tree-select-empty", g["filter-tree-select-empty"]),
|
|
306
|
-
children: /* @__PURE__ */ f(
|
|
309
|
+
children: /* @__PURE__ */ f(Be, { iconType: "simple", description: "暂无数据" })
|
|
307
310
|
}
|
|
308
311
|
) : ne.map((e) => {
|
|
309
312
|
if (!Fe(e)) return null;
|
|
310
313
|
const t = !P.get(e.id), o = Q.has(e.id), r = !n && x === e.id, s = n ? x || [] : [];
|
|
311
|
-
let
|
|
314
|
+
let i = n && s.includes(e.id), l = !1;
|
|
312
315
|
if (n && L && !t) {
|
|
313
|
-
const
|
|
314
|
-
|
|
316
|
+
const c = D.get(e.id) || [], k = c.filter((Ee) => s.includes(Ee)).length;
|
|
317
|
+
i = c.length > 0 && k === c.length, l = k > 0 && k < c.length;
|
|
315
318
|
}
|
|
316
319
|
return /* @__PURE__ */ H(
|
|
317
320
|
"div",
|
|
@@ -328,23 +331,23 @@ const rt = ({
|
|
|
328
331
|
"span",
|
|
329
332
|
{
|
|
330
333
|
className: g["filter-tree-select-expand-icon"],
|
|
331
|
-
onClick: (
|
|
332
|
-
|
|
334
|
+
onClick: (c) => {
|
|
335
|
+
c.stopPropagation(), I(e.id);
|
|
333
336
|
},
|
|
334
|
-
children: o || y && T ? /* @__PURE__ */ f(
|
|
337
|
+
children: o || y && T ? /* @__PURE__ */ f(He, { style: { fontSize: 10 } }) : /* @__PURE__ */ f(We, { style: { fontSize: 10 } })
|
|
335
338
|
}
|
|
336
339
|
),
|
|
337
340
|
n && /* @__PURE__ */ f(
|
|
338
|
-
|
|
341
|
+
Pe,
|
|
339
342
|
{
|
|
340
|
-
checked:
|
|
343
|
+
checked: i,
|
|
341
344
|
indeterminate: l,
|
|
342
|
-
onClick: (
|
|
345
|
+
onClick: (c) => c.stopPropagation(),
|
|
343
346
|
onChange: () => O(e.id)
|
|
344
347
|
}
|
|
345
348
|
),
|
|
346
349
|
/* @__PURE__ */ f("span", { className: g["filter-tree-select-node-label"], children: e.name }),
|
|
347
|
-
!n && r && /* @__PURE__ */ f(
|
|
350
|
+
!n && r && /* @__PURE__ */ f(Xe, { className: g["filter-tree-select-option-check"] })
|
|
348
351
|
]
|
|
349
352
|
},
|
|
350
353
|
e.id
|
|
@@ -354,7 +357,7 @@ const rt = ({
|
|
|
354
357
|
),
|
|
355
358
|
n && (L ? (x || []).some((e) => !P.get(e)) : (x || []).length > 0) && /* @__PURE__ */ H("div", { className: g["filter-tree-select-selected-bar"], children: [
|
|
356
359
|
/* @__PURE__ */ f("div", { className: g["filter-tree-select-selected-label"], children: "已选:" }),
|
|
357
|
-
/* @__PURE__ */ f(
|
|
360
|
+
/* @__PURE__ */ f(Re, { size: [4, 4], wrap: !0, children: (x || []).filter((e) => !(L && P.get(e))).map((e) => /* @__PURE__ */ H(
|
|
358
361
|
"span",
|
|
359
362
|
{
|
|
360
363
|
className: g["filter-tree-select-selected-tag"],
|
|
@@ -363,7 +366,7 @@ const rt = ({
|
|
|
363
366
|
},
|
|
364
367
|
children: [
|
|
365
368
|
B.get(e) ?? e,
|
|
366
|
-
/* @__PURE__ */ f(
|
|
369
|
+
/* @__PURE__ */ f($e, { className: g["filter-tree-select-selected-remove"] })
|
|
367
370
|
]
|
|
368
371
|
},
|
|
369
372
|
e
|
|
@@ -374,6 +377,6 @@ const rt = ({
|
|
|
374
377
|
) : null;
|
|
375
378
|
};
|
|
376
379
|
export {
|
|
377
|
-
|
|
380
|
+
nt as default
|
|
378
381
|
};
|
|
379
382
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Filter/FilterTreeSelect/index.tsx"],"sourcesContent":["import { Check, ChevronDown, ChevronRight, X } from '@/components/Icons';\nimport { Empty } from '@/components/Empty';\nimport { useMarsunFetch } from '@/provider';\nimport { useFetchData } from '@/hooks/useFetchData';\nimport { Checkbox, Input, Space, Spin } from 'antd';\nimport classNames from 'classnames';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport FilterPopover from '../FilterPopover';\nimport type { BaseFilterProps, FilterLoadDataContext } from '../types';\nimport { resolveFilterVisible } from '../types';\nimport { useFilterFieldBridge, useFilterRegister } from '../useFilterState';\nimport styles from './style.module.scss';\n\nconst { Search } = Input;\n\nexport interface TreeFilterNode {\n id: string;\n name: string;\n children?: TreeFilterNode[];\n}\n\nexport interface FilterTreeSelectProps extends BaseFilterProps {\n treeData?: TreeFilterNode[];\n fetchUrl?: string;\n fetchOptions?: RequestInit;\n transformData?: (raw: unknown) => TreeFilterNode[];\n /**\n * 按依赖值动态拉取树数据(优先于 fetchUrl;若同时传 treeData 则仍以 treeData 为准)。\n */\n loadData?: (ctx: FilterLoadDataContext) => Promise<TreeFilterNode[]>;\n enabled?: boolean;\n value?: string | string[] | undefined;\n onChange?: (value: string | string[] | undefined) => void;\n showSearch?: boolean;\n multiple?: boolean;\n /**\n * 仅叶子写入最终值。\n * - 单选:点父节点只展开\n * - 多选:点父节点 / 勾选框 = 全选或取消其下全部叶子;父勾选框支持半选\n */\n leafOnly?: boolean;\n /** 自定义节点展示标签(默认 name) */\n getNodeLabel?: (node: TreeFilterNode) => string;\n /**\n * 面板内嵌从属条件(与 search 同层:search 下方、树列表上方)。\n * 用于「属性筛服务本树」等场景;禁止再嵌 Filter*(双重 Popover)。\n */\n panelExtra?: React.ReactNode;\n /** 面板宽度;有 panelExtra 时默认 460 */\n panelWidth?: number;\n /**\n * 选项加载中:Filter Item(Trigger)显示 Loader2 spin;\n * 面板列表区显示 Spin,不渲染空态。\n * 与内部 fetchUrl / loadData loading 取或。\n */\n loading?: boolean;\n}\n\ninterface FlatNode {\n id: string;\n name: string;\n depth: number;\n parentId: string | null;\n}\n\nfunction flattenTree(\n nodes: TreeFilterNode[],\n depth = 0,\n parentId: string | null = null,\n): FlatNode[] {\n const result: FlatNode[] = [];\n for (const node of nodes) {\n result.push({ id: node.id, name: node.name, depth, parentId });\n if (node.children?.length) {\n result.push(...flattenTree(node.children, depth + 1, node.id));\n }\n }\n return result;\n}\n\nfunction filterByKeyword(nodes: TreeFilterNode[], keyword: string): TreeFilterNode[] {\n if (!keyword) return nodes;\n const lower = keyword.toLowerCase();\n function matchTree(items: TreeFilterNode[]): TreeFilterNode[] {\n const result: TreeFilterNode[] = [];\n for (const item of items) {\n const children = item.children?.length ? matchTree(item.children) : [];\n const selfMatch = item.name.toLowerCase().includes(lower);\n if (selfMatch || children.length > 0) {\n result.push({ ...item, children: children.length > 0 ? children : undefined });\n }\n }\n return result;\n }\n return matchTree(nodes);\n}\n\nfunction collectExpandableIds(nodes: TreeFilterNode[]): string[] {\n const ids: string[] = [];\n for (const node of nodes) {\n if (node.children?.length) {\n ids.push(node.id);\n ids.push(...collectExpandableIds(node.children));\n }\n }\n return ids;\n}\n\nfunction buildLabelMap(\n nodes: TreeFilterNode[],\n getLabel: (n: TreeFilterNode) => string,\n): Map<string, string> {\n const map = new Map<string, string>();\n const walk = (items: TreeFilterNode[]) => {\n for (const n of items) {\n map.set(n.id, getLabel(n));\n if (n.children) walk(n.children);\n }\n };\n walk(nodes);\n return map;\n}\n\nconst FilterTreeSelect: React.FC<FilterTreeSelectProps> = ({\n filterKey,\n label,\n treeData: propsTreeData,\n fetchUrl,\n fetchOptions,\n transformData,\n loadData,\n enabled = true,\n value,\n onChange,\n showSearch = false,\n multiple = false,\n leafOnly = false,\n active,\n hidden,\n display,\n dependsOn,\n clearOnDepsChange = true,\n getNodeLabel = (n) => n.name,\n panelExtra,\n panelWidth,\n loading: loadingProp = false,\n}) => {\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const resolvedPanelWidth = panelWidth ?? (panelExtra ? 460 : undefined);\n\n const { resolvedLabel, values, depsKey } = useFilterFieldBridge({\n filterKey,\n value,\n label,\n dependsOn,\n clearOnDepsChange,\n onDepsClear: () => onChangeRef.current?.(multiple ? [] : undefined),\n });\n\n const fetchCtx = useMarsunFetch();\n const useStaticOrUrl = propsTreeData != null || (!loadData && !!fetchUrl);\n const { data: fetchedTree, loading: fetchLoading } = useFetchData<TreeFilterNode[]>({\n data: propsTreeData,\n fetchUrl: useStaticOrUrl && !loadData ? fetchUrl : undefined,\n fetchOptions,\n transformData,\n enabled: enabled && useStaticOrUrl && !loadData,\n baseUrl: fetchCtx.baseUrl,\n defaultHeaders: fetchCtx.headers,\n timeoutMs: fetchCtx.timeoutMs,\n });\n\n const [loadedTree, setLoadedTree] = useState<TreeFilterNode[]>([]);\n const [loadDataLoading, setLoadDataLoading] = useState(false);\n const loadDataRef = useRef(loadData);\n loadDataRef.current = loadData;\n\n useEffect(() => {\n if (!loadDataRef.current || propsTreeData != null || !enabled) return;\n let cancelled = false;\n setLoadDataLoading(true);\n (async () => {\n try {\n const next = await loadDataRef.current!({ values });\n if (!cancelled) setLoadedTree(next ?? []);\n } catch {\n if (!cancelled) setLoadedTree([]);\n } finally {\n if (!cancelled) setLoadDataLoading(false);\n }\n })();\n return () => {\n cancelled = true;\n };\n // values 已由 depsKey 覆盖;避免无 dependsOn 时随 values 全表抖动\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [depsKey, enabled, propsTreeData, loadData]);\n\n const sourceTree = propsTreeData ?? (loadData ? loadedTree : (fetchedTree ?? []));\n const optionsLoading = loadingProp || fetchLoading || loadDataLoading;\n\n const [open, setOpen] = useState(false);\n const [localValue, setLocalValue] = useState<string | string[] | undefined>(\n value ?? (multiple ? [] : undefined),\n );\n const [expandedKeys, setExpandedKeys] = useState<Set<string>>(new Set());\n const [searchText, setSearchText] = useState('');\n\n const registerFn = useFilterRegister();\n const visibilityCtx = { filterKey, label: resolvedLabel, value };\n\n useEffect(() => {\n setLocalValue(value ?? (multiple ? [] : undefined));\n if (value === undefined || value === null) setSearchText('');\n }, [value, multiple]);\n\n useEffect(() => {\n if (sourceTree.length) {\n setExpandedKeys(new Set(collectExpandableIds(sourceTree)));\n }\n }, [sourceTree]);\n\n const labelMap = useMemo(\n () => buildLabelMap(sourceTree, getNodeLabel),\n [sourceTree, getNodeLabel],\n );\n\n const confirmedValueLabel = useMemo(() => {\n if (!sourceTree.length || value == null) return '';\n if (multiple) {\n const arr = value as string[];\n return arr.length > 0 ? arr.map((v) => labelMap.get(v) ?? v).join('、') : '';\n }\n return labelMap.get(value as string) ?? '';\n }, [sourceTree, value, multiple, labelMap]);\n\n useEffect(() => {\n if (!registerFn) return;\n if (!resolveFilterVisible({ display, hidden }, visibilityCtx)) {\n registerFn.unregister(filterKey);\n return;\n }\n if (confirmedValueLabel) {\n registerFn.register(filterKey, {\n label: resolvedLabel,\n valueLabel: confirmedValueLabel,\n onRemove: () => onChange?.(multiple ? [] : undefined),\n });\n } else {\n registerFn.unregister(filterKey);\n }\n }, [\n confirmedValueLabel,\n filterKey,\n resolvedLabel,\n display,\n hidden,\n registerFn,\n onChange,\n multiple,\n visibilityCtx,\n ]);\n\n const filteredTree = useMemo(\n () => (showSearch && searchText ? filterByKeyword(sourceTree, searchText) : sourceTree),\n [showSearch, searchText, sourceTree],\n );\n\n const flatNodes = useMemo(() => flattenTree(filteredTree), [filteredTree]);\n\n const hasChildrenMap = useMemo(() => {\n const map = new Map<string, boolean>();\n const walk = (nodes: TreeFilterNode[]) => {\n for (const n of nodes) {\n map.set(n.id, !!n.children?.length);\n if (n.children) walk(n.children);\n }\n };\n walk(filteredTree);\n return map;\n }, [filteredTree]);\n\n const childrenMap = useMemo(() => {\n const map = new Map<string, string[]>();\n const walk = (nodes: TreeFilterNode[]) => {\n for (const n of nodes) {\n if (n.children?.length) {\n const childIds: string[] = [];\n const collectAll = (node: TreeFilterNode) => {\n childIds.push(node.id);\n node.children?.forEach(collectAll);\n };\n n.children.forEach(collectAll);\n map.set(n.id, childIds);\n walk(n.children);\n }\n }\n };\n walk(filteredTree);\n return map;\n }, [filteredTree]);\n\n const parentMap = useMemo(() => {\n const map = new Map<string, string>();\n const walk = (nodes: TreeFilterNode[]) => {\n for (const n of nodes) {\n if (n.children?.length) {\n for (const child of n.children) map.set(child.id, n.id);\n walk(n.children);\n }\n }\n };\n walk(filteredTree);\n return map;\n }, [filteredTree]);\n\n const leafDescendantsMap = useMemo(() => {\n const map = new Map<string, string[]>();\n const walk = (nodes: TreeFilterNode[]) => {\n for (const n of nodes) {\n if (!n.children?.length) continue;\n const leaves: string[] = [];\n const collectLeaves = (node: TreeFilterNode) => {\n if (!node.children?.length) {\n leaves.push(node.id);\n return;\n }\n node.children.forEach(collectLeaves);\n };\n n.children.forEach(collectLeaves);\n map.set(n.id, leaves);\n walk(n.children);\n }\n };\n walk(filteredTree);\n return map;\n }, [filteredTree]);\n\n const toggleExpand = useCallback((nodeId: string) => {\n setExpandedKeys((prev) => {\n const next = new Set(prev);\n if (next.has(nodeId)) next.delete(nodeId);\n else next.add(nodeId);\n return next;\n });\n }, []);\n\n const handleSingleSelect = useCallback(\n (nodeId: string) => {\n if (leafOnly && hasChildrenMap.get(nodeId)) {\n toggleExpand(nodeId);\n return;\n }\n const next = localValue === nodeId ? undefined : nodeId;\n setLocalValue(next);\n onChange?.(next);\n setOpen(false);\n },\n [localValue, onChange, leafOnly, hasChildrenMap, toggleExpand],\n );\n\n const handleToggleMulti = useCallback(\n (nodeId: string) => {\n const arr = ((localValue as string[]) || []).slice();\n const childIds = childrenMap.get(nodeId);\n const leafIds = leafDescendantsMap.get(nodeId);\n const parentId = parentMap.get(nodeId);\n\n // leafOnly:点父节点 = 全选/取消其下全部叶子(值里不写入父 id)\n if (leafOnly && leafIds?.length) {\n const allLeavesSelected = leafIds.every((id) => arr.includes(id));\n if (allLeavesSelected) {\n const remove = new Set(leafIds);\n setLocalValue(arr.filter((v) => !remove.has(v)));\n } else {\n setLocalValue([...new Set([...arr, ...leafIds])]);\n }\n return;\n }\n\n if (childIds) {\n const isChecked = arr.includes(nodeId);\n if (isChecked) {\n const removeSet = new Set([nodeId, ...childIds]);\n setLocalValue(arr.filter((v) => !removeSet.has(v)));\n } else {\n setLocalValue([...new Set([...arr, nodeId, ...childIds])]);\n }\n } else if (arr.includes(nodeId)) {\n const next = arr.filter((v) => v !== nodeId);\n setLocalValue(\n parentId && next.includes(parentId) ? next.filter((v) => v !== parentId) : next,\n );\n } else {\n const next = [...arr, nodeId];\n if (parentId && !leafOnly) {\n const siblingIds = childrenMap.get(parentId) || [];\n if (siblingIds.every((id) => next.includes(id))) {\n setLocalValue([...new Set([...next, parentId])]);\n } else {\n setLocalValue(next);\n }\n } else {\n setLocalValue(next);\n }\n }\n },\n [localValue, childrenMap, parentMap, leafOnly, leafDescendantsMap],\n );\n\n const isVisible = useCallback(\n (node: FlatNode) => {\n if (node.parentId === null) return true;\n if (showSearch && searchText) return true;\n return expandedKeys.has(node.parentId);\n },\n [expandedKeys, showSearch, searchText],\n );\n\n if (!resolveFilterVisible({ display, hidden }, visibilityCtx)) return null;\n\n return (\n <FilterPopover\n label={resolvedLabel}\n active={active || (multiple ? (localValue as string[])?.length > 0 : !!value)}\n loading={optionsLoading}\n open={open}\n onOpenChange={setOpen}\n width={resolvedPanelWidth}\n onConfirm={\n multiple\n ? () => {\n let next = localValue;\n if (leafOnly && Array.isArray(next)) {\n next = next.filter((id) => !hasChildrenMap.get(id));\n }\n onChange?.(next);\n setOpen(false);\n }\n : undefined\n }\n onReset={() => {\n const next = multiple ? [] : undefined;\n setLocalValue(next);\n setSearchText('');\n onChange?.(next);\n setOpen(false);\n }}\n >\n {showSearch && (\n <Search\n placeholder={`搜索${resolvedLabel}`}\n allowClear\n size=\"middle\"\n className={classNames('filter-tree-select-search', styles['filter-tree-select-search'])}\n value={searchText}\n onChange={(e) => setSearchText(e.target.value)}\n />\n )}\n {panelExtra ? (\n <div\n className={classNames(\n 'filter-tree-select-panel-extra',\n styles['filter-tree-select-panel-extra'],\n )}\n >\n {panelExtra}\n </div>\n ) : null}\n <div\n className={classNames('filter-tree-select-options', styles['filter-tree-select-options'])}\n >\n {optionsLoading ? (\n <div\n className={classNames(\n 'filter-tree-select-loading',\n styles['filter-tree-select-loading'],\n )}\n >\n <Spin size=\"small\" />\n </div>\n ) : flatNodes.length === 0 ? (\n <div\n className={classNames('filter-tree-select-empty', styles['filter-tree-select-empty'])}\n >\n <Empty iconType=\"simple\" description=\"暂无数据\" />\n </div>\n ) : (\n flatNodes.map((node) => {\n if (!isVisible(node)) return null;\n const isLeaf = !hasChildrenMap.get(node.id);\n const isExpanded = expandedKeys.has(node.id);\n const isSingleSelected = !multiple && localValue === node.id;\n const selectedArr = multiple ? (localValue as string[]) || [] : [];\n let isMultiChecked = multiple && selectedArr.includes(node.id);\n let isIndeterminate = false;\n if (multiple && leafOnly && !isLeaf) {\n const leaves = leafDescendantsMap.get(node.id) || [];\n const selectedLeafCount = leaves.filter((id) => selectedArr.includes(id)).length;\n isMultiChecked = leaves.length > 0 && selectedLeafCount === leaves.length;\n isIndeterminate = selectedLeafCount > 0 && selectedLeafCount < leaves.length;\n }\n return (\n <div\n key={node.id}\n className={classNames(\n 'filter-tree-select-option',\n styles['filter-tree-select-option'],\n isSingleSelected && styles['filter-tree-select-option-selected'],\n )}\n style={{ paddingLeft: 8 + node.depth * 20 }}\n onClick={() =>\n multiple ? handleToggleMulti(node.id) : handleSingleSelect(node.id)\n }\n >\n {!isLeaf ? (\n <span\n className={styles['filter-tree-select-expand-icon']}\n onClick={(e) => {\n e.stopPropagation();\n toggleExpand(node.id);\n }}\n >\n {isExpanded || (showSearch && !!searchText) ? (\n <ChevronDown style={{ fontSize: 10 }} />\n ) : (\n <ChevronRight style={{ fontSize: 10 }} />\n )}\n </span>\n ) : (\n <span className={styles['filter-tree-select-expand-placeholder']} />\n )}\n {multiple && (\n <Checkbox\n checked={isMultiChecked}\n indeterminate={isIndeterminate}\n onClick={(e) => e.stopPropagation()}\n onChange={() => handleToggleMulti(node.id)}\n />\n )}\n <span className={styles['filter-tree-select-node-label']}>{node.name}</span>\n {!multiple && isSingleSelected && (\n <Check className={styles['filter-tree-select-option-check']} />\n )}\n </div>\n );\n })\n )}\n </div>\n {multiple &&\n (leafOnly\n ? ((localValue as string[]) || []).some((id) => !hasChildrenMap.get(id))\n : ((localValue as string[]) || []).length > 0) && (\n <div className={styles['filter-tree-select-selected-bar']}>\n <div className={styles['filter-tree-select-selected-label']}>已选:</div>\n <Space size={[4, 4]} wrap>\n {((localValue as string[]) || [])\n .filter((v) => !(leafOnly && hasChildrenMap.get(v)))\n .map((v) => (\n <span\n key={v}\n className={styles['filter-tree-select-selected-tag']}\n onClick={(e) => {\n e.stopPropagation();\n handleToggleMulti(v);\n }}\n >\n {labelMap.get(v) ?? v}\n <X className={styles['filter-tree-select-selected-remove']} />\n </span>\n ))}\n </Space>\n </div>\n )}\n </FilterPopover>\n );\n};\n\nexport default FilterTreeSelect;\n"],"names":["Search","Input","flattenTree","nodes","depth","parentId","result","node","_a","filterByKeyword","keyword","lower","matchTree","items","item","children","collectExpandableIds","ids","buildLabelMap","getLabel","map","walk","n","FilterTreeSelect","filterKey","label","propsTreeData","fetchUrl","fetchOptions","transformData","loadData","enabled","value","onChange","showSearch","multiple","leafOnly","active","hidden","display","dependsOn","clearOnDepsChange","getNodeLabel","panelExtra","panelWidth","loadingProp","onChangeRef","useRef","resolvedPanelWidth","resolvedLabel","values","depsKey","useFilterFieldBridge","fetchCtx","useMarsunFetch","useStaticOrUrl","fetchedTree","fetchLoading","useFetchData","loadedTree","setLoadedTree","useState","loadDataLoading","setLoadDataLoading","loadDataRef","useEffect","cancelled","next","sourceTree","optionsLoading","open","setOpen","localValue","setLocalValue","expandedKeys","setExpandedKeys","searchText","setSearchText","registerFn","useFilterRegister","visibilityCtx","labelMap","useMemo","confirmedValueLabel","arr","v","resolveFilterVisible","filteredTree","flatNodes","hasChildrenMap","childrenMap","childIds","collectAll","parentMap","child","leafDescendantsMap","leaves","collectLeaves","toggleExpand","useCallback","nodeId","prev","handleSingleSelect","handleToggleMulti","leafIds","id","remove","removeSet","isVisible","jsxs","FilterPopover","jsx","classNames","styles","Spin","Empty","isLeaf","isExpanded","isSingleSelected","selectedArr","isMultiChecked","isIndeterminate","selectedLeafCount","e","ChevronDown","ChevronRight","Checkbox","Check","Space","X"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Filter/FilterTreeSelect/index.tsx"],"sourcesContent":["import { Check, ChevronDown, ChevronRight, X } from '@/components/Icons';\nimport { Empty } from '@/components/Empty';\nimport { useMarsunFetch } from '@/provider';\nimport { useFetchData } from '@/hooks/useFetchData';\nimport { Checkbox, Input, Space, Spin } from 'antd';\nimport classNames from 'classnames';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport FilterPopover from '../FilterPopover';\nimport type { BaseFilterProps, FilterLoadDataContext } from '../types';\nimport { resolveFilterVisible } from '../types';\nimport { useFilterFieldBridge, useFilterRegister } from '../useFilterState';\nimport styles from './style.module.scss';\n\nconst { Search } = Input;\n\nexport interface TreeFilterNode {\n id: string;\n name: string;\n children?: TreeFilterNode[];\n}\n\nexport interface FilterTreeSelectProps extends BaseFilterProps {\n treeData?: TreeFilterNode[];\n fetchUrl?: string;\n fetchOptions?: RequestInit;\n transformData?: (raw: unknown) => TreeFilterNode[];\n /**\n * 按依赖值动态拉取树数据(优先于 fetchUrl;若同时传 treeData 则仍以 treeData 为准)。\n */\n loadData?: (ctx: FilterLoadDataContext) => Promise<TreeFilterNode[]>;\n enabled?: boolean;\n value?: string | string[] | undefined;\n onChange?: (value: string | string[] | undefined) => void;\n showSearch?: boolean;\n multiple?: boolean;\n /**\n * 仅叶子写入最终值。\n * - 单选:点父节点只展开\n * - 多选:点父节点 / 勾选框 = 全选或取消其下全部叶子;父勾选框支持半选\n */\n leafOnly?: boolean;\n /** 自定义节点展示标签(默认 name) */\n getNodeLabel?: (node: TreeFilterNode) => string;\n /**\n * 面板内嵌从属条件(与 search 同层:search 下方、树列表上方)。\n * 用于「属性筛服务本树」等场景;禁止再嵌 Filter*(双重 Popover)。\n */\n panelExtra?: React.ReactNode;\n /** 面板宽度;有 panelExtra 时默认 460 */\n panelWidth?: number;\n /**\n * 选项加载中:Filter Item(Trigger)显示 Loader2 spin;\n * 面板列表区显示 Spin,不渲染空态。\n * 与内部 fetchUrl / loadData loading 取或。\n */\n loading?: boolean;\n}\n\ninterface FlatNode {\n id: string;\n name: string;\n depth: number;\n parentId: string | null;\n}\n\nfunction flattenTree(\n nodes: TreeFilterNode[],\n depth = 0,\n parentId: string | null = null,\n): FlatNode[] {\n const result: FlatNode[] = [];\n for (const node of nodes) {\n result.push({ id: node.id, name: node.name, depth, parentId });\n if (node.children?.length) {\n result.push(...flattenTree(node.children, depth + 1, node.id));\n }\n }\n return result;\n}\n\nfunction filterByKeyword(nodes: TreeFilterNode[], keyword: string): TreeFilterNode[] {\n if (!keyword) return nodes;\n const lower = keyword.toLowerCase();\n function matchTree(items: TreeFilterNode[]): TreeFilterNode[] {\n const result: TreeFilterNode[] = [];\n for (const item of items) {\n const children = item.children?.length ? matchTree(item.children) : [];\n const selfMatch = item.name.toLowerCase().includes(lower);\n if (selfMatch || children.length > 0) {\n result.push({ ...item, children: children.length > 0 ? children : undefined });\n }\n }\n return result;\n }\n return matchTree(nodes);\n}\n\nfunction collectExpandableIds(nodes: TreeFilterNode[]): string[] {\n const ids: string[] = [];\n for (const node of nodes) {\n if (node.children?.length) {\n ids.push(node.id);\n ids.push(...collectExpandableIds(node.children));\n }\n }\n return ids;\n}\n\nfunction buildLabelMap(\n nodes: TreeFilterNode[],\n getLabel: (n: TreeFilterNode) => string,\n): Map<string, string> {\n const map = new Map<string, string>();\n const walk = (items: TreeFilterNode[]) => {\n for (const n of items) {\n map.set(n.id, getLabel(n));\n if (n.children) walk(n.children);\n }\n };\n walk(nodes);\n return map;\n}\n\nconst FilterTreeSelect: React.FC<FilterTreeSelectProps> = ({\n filterKey,\n label,\n treeData: propsTreeData,\n fetchUrl,\n fetchOptions,\n transformData,\n loadData,\n enabled = true,\n value,\n onChange,\n showSearch = false,\n multiple = false,\n leafOnly = false,\n active,\n hidden,\n display,\n dependsOn,\n clearOnDepsChange = true,\n getNodeLabel = (n) => n.name,\n panelExtra,\n panelWidth,\n loading: loadingProp = false,\n}) => {\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const resolvedPanelWidth = panelWidth ?? (panelExtra ? 460 : undefined);\n\n const { resolvedLabel, values, depsKey } = useFilterFieldBridge({\n filterKey,\n value,\n label,\n dependsOn,\n clearOnDepsChange,\n onDepsClear: () => onChangeRef.current?.(multiple ? [] : undefined),\n });\n\n const fetchCtx = useMarsunFetch();\n const useStaticOrUrl = propsTreeData != null || (!loadData && !!fetchUrl);\n const { data: fetchedTree, loading: fetchLoading } = useFetchData<TreeFilterNode[]>({\n data: propsTreeData,\n fetchUrl: useStaticOrUrl && !loadData ? fetchUrl : undefined,\n fetchOptions,\n transformData,\n enabled: enabled && useStaticOrUrl && !loadData,\n baseUrl: fetchCtx.baseUrl,\n defaultHeaders: fetchCtx.headers,\n timeoutMs: fetchCtx.timeoutMs,\n });\n\n const [loadedTree, setLoadedTree] = useState<TreeFilterNode[]>([]);\n const [loadDataLoading, setLoadDataLoading] = useState(false);\n const loadDataRef = useRef(loadData);\n loadDataRef.current = loadData;\n\n useEffect(() => {\n if (!loadDataRef.current || propsTreeData != null || !enabled) return;\n let cancelled = false;\n setLoadDataLoading(true);\n (async () => {\n try {\n const next = await loadDataRef.current!({ values });\n if (!cancelled) setLoadedTree(next ?? []);\n } catch {\n if (!cancelled) setLoadedTree([]);\n } finally {\n if (!cancelled) setLoadDataLoading(false);\n }\n })();\n return () => {\n cancelled = true;\n };\n // values 已由 depsKey 覆盖;避免无 dependsOn 时随 values 全表抖动\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [depsKey, enabled, propsTreeData, loadData]);\n\n const sourceTree = propsTreeData ?? (loadData ? loadedTree : (fetchedTree ?? []));\n const optionsLoading = loadingProp || fetchLoading || loadDataLoading;\n\n const [open, setOpen] = useState(false);\n const [localValue, setLocalValue] = useState<string | string[] | undefined>(\n value ?? (multiple ? [] : undefined),\n );\n const [expandedKeys, setExpandedKeys] = useState<Set<string>>(new Set());\n const [searchText, setSearchText] = useState('');\n\n const registerFn = useFilterRegister();\n const visibilityCtx = { filterKey, label: resolvedLabel, value };\n\n useEffect(() => {\n setLocalValue(value ?? (multiple ? [] : undefined));\n if (value === undefined || value === null) setSearchText('');\n }, [value, multiple]);\n\n useEffect(() => {\n if (sourceTree.length) {\n setExpandedKeys(new Set(collectExpandableIds(sourceTree)));\n }\n }, [sourceTree]);\n\n const labelMap = useMemo(\n () => buildLabelMap(sourceTree, getNodeLabel),\n [sourceTree, getNodeLabel],\n );\n\n const confirmedValueLabel = useMemo(() => {\n if (!sourceTree.length || value == null) return '';\n if (multiple) {\n const arr = value as string[];\n return arr.length > 0 ? arr.map((v) => labelMap.get(v) ?? v).join('、') : '';\n }\n return labelMap.get(value as string) ?? '';\n }, [sourceTree, value, multiple, labelMap]);\n\n useEffect(() => {\n if (!registerFn) return;\n if (!resolveFilterVisible({ display, hidden }, visibilityCtx)) {\n registerFn.unregister(filterKey);\n return;\n }\n if (confirmedValueLabel) {\n registerFn.register(filterKey, {\n label: resolvedLabel,\n valueLabel: confirmedValueLabel,\n onRemove: () => onChange?.(multiple ? [] : undefined),\n });\n } else {\n registerFn.unregister(filterKey);\n }\n }, [\n confirmedValueLabel,\n filterKey,\n resolvedLabel,\n display,\n hidden,\n registerFn,\n onChange,\n multiple,\n visibilityCtx,\n ]);\n\n const filteredTree = useMemo(\n () => (showSearch && searchText ? filterByKeyword(sourceTree, searchText) : sourceTree),\n [showSearch, searchText, sourceTree],\n );\n\n const flatNodes = useMemo(() => flattenTree(filteredTree), [filteredTree]);\n\n const hasChildrenMap = useMemo(() => {\n const map = new Map<string, boolean>();\n const walk = (nodes: TreeFilterNode[]) => {\n for (const n of nodes) {\n map.set(n.id, !!n.children?.length);\n if (n.children) walk(n.children);\n }\n };\n walk(filteredTree);\n return map;\n }, [filteredTree]);\n\n const childrenMap = useMemo(() => {\n const map = new Map<string, string[]>();\n const walk = (nodes: TreeFilterNode[]) => {\n for (const n of nodes) {\n if (n.children?.length) {\n const childIds: string[] = [];\n const collectAll = (node: TreeFilterNode) => {\n childIds.push(node.id);\n node.children?.forEach(collectAll);\n };\n n.children.forEach(collectAll);\n map.set(n.id, childIds);\n walk(n.children);\n }\n }\n };\n walk(filteredTree);\n return map;\n }, [filteredTree]);\n\n const parentMap = useMemo(() => {\n const map = new Map<string, string>();\n const walk = (nodes: TreeFilterNode[]) => {\n for (const n of nodes) {\n if (n.children?.length) {\n for (const child of n.children) map.set(child.id, n.id);\n walk(n.children);\n }\n }\n };\n walk(filteredTree);\n return map;\n }, [filteredTree]);\n\n const leafDescendantsMap = useMemo(() => {\n const map = new Map<string, string[]>();\n const walk = (nodes: TreeFilterNode[]) => {\n for (const n of nodes) {\n if (!n.children?.length) continue;\n const leaves: string[] = [];\n const collectLeaves = (node: TreeFilterNode) => {\n if (!node.children?.length) {\n leaves.push(node.id);\n return;\n }\n node.children.forEach(collectLeaves);\n };\n n.children.forEach(collectLeaves);\n map.set(n.id, leaves);\n walk(n.children);\n }\n };\n walk(filteredTree);\n return map;\n }, [filteredTree]);\n\n const toggleExpand = useCallback((nodeId: string) => {\n setExpandedKeys((prev) => {\n const next = new Set(prev);\n if (next.has(nodeId)) next.delete(nodeId);\n else next.add(nodeId);\n return next;\n });\n }, []);\n\n const handleSingleSelect = useCallback(\n (nodeId: string) => {\n if (leafOnly && hasChildrenMap.get(nodeId)) {\n toggleExpand(nodeId);\n return;\n }\n const next = localValue === nodeId ? undefined : nodeId;\n setLocalValue(next);\n onChange?.(next);\n setOpen(false);\n },\n [localValue, onChange, leafOnly, hasChildrenMap, toggleExpand],\n );\n\n const handleToggleMulti = useCallback(\n (nodeId: string) => {\n const arr = ((localValue as string[]) || []).slice();\n const childIds = childrenMap.get(nodeId);\n const leafIds = leafDescendantsMap.get(nodeId);\n const parentId = parentMap.get(nodeId);\n\n // leafOnly:点父节点 = 全选/取消其下全部叶子(值里不写入父 id)\n if (leafOnly && leafIds?.length) {\n const allLeavesSelected = leafIds.every((id) => arr.includes(id));\n if (allLeavesSelected) {\n const remove = new Set(leafIds);\n setLocalValue(arr.filter((v) => !remove.has(v)));\n } else {\n setLocalValue([...new Set([...arr, ...leafIds])]);\n }\n return;\n }\n\n if (childIds) {\n const isChecked = arr.includes(nodeId);\n if (isChecked) {\n const removeSet = new Set([nodeId, ...childIds]);\n setLocalValue(arr.filter((v) => !removeSet.has(v)));\n } else {\n setLocalValue([...new Set([...arr, nodeId, ...childIds])]);\n }\n } else if (arr.includes(nodeId)) {\n const next = arr.filter((v) => v !== nodeId);\n setLocalValue(\n parentId && next.includes(parentId) ? next.filter((v) => v !== parentId) : next,\n );\n } else {\n const next = [...arr, nodeId];\n if (parentId && !leafOnly) {\n const siblingIds = childrenMap.get(parentId) || [];\n if (siblingIds.every((id) => next.includes(id))) {\n setLocalValue([...new Set([...next, parentId])]);\n } else {\n setLocalValue(next);\n }\n } else {\n setLocalValue(next);\n }\n }\n },\n [localValue, childrenMap, parentMap, leafOnly, leafDescendantsMap],\n );\n\n const isVisible = useCallback(\n (node: FlatNode) => {\n if (node.parentId === null) return true;\n if (showSearch && searchText) return true;\n return expandedKeys.has(node.parentId);\n },\n [expandedKeys, showSearch, searchText],\n );\n\n if (!resolveFilterVisible({ display, hidden }, visibilityCtx)) return null;\n\n return (\n <FilterPopover\n label={resolvedLabel}\n active={active || (multiple ? (localValue as string[])?.length > 0 : !!value)}\n loading={optionsLoading}\n open={open}\n onOpenChange={setOpen}\n width={resolvedPanelWidth}\n onConfirm={\n multiple\n ? () => {\n let next = localValue;\n if (leafOnly && Array.isArray(next)) {\n next = next.filter((id) => !hasChildrenMap.get(id));\n }\n onChange?.(next);\n setOpen(false);\n }\n : undefined\n }\n onReset={() => {\n const next = multiple ? [] : undefined;\n setLocalValue(next);\n setSearchText('');\n onChange?.(next);\n setOpen(false);\n }}\n >\n {showSearch && (\n <Search\n placeholder={`搜索${resolvedLabel}`}\n allowClear\n size=\"middle\"\n className={classNames('filter-tree-select-search', styles['filter-tree-select-search'])}\n value={searchText}\n onChange={(e) => setSearchText(e.target.value)}\n />\n )}\n {panelExtra ? (\n <div\n className={classNames(\n 'filter-tree-select-panel-extra',\n styles['filter-tree-select-panel-extra'],\n )}\n >\n {panelExtra}\n </div>\n ) : null}\n <div\n className={classNames('filter-tree-select-options', styles['filter-tree-select-options'])}\n >\n {optionsLoading ? (\n <div\n className={classNames(\n 'filter-tree-select-loading',\n styles['filter-tree-select-loading'],\n )}\n >\n <Spin size=\"small\" />\n </div>\n ) : flatNodes.length === 0 ? (\n <div\n className={classNames('filter-tree-select-empty', styles['filter-tree-select-empty'])}\n >\n <Empty iconType=\"simple\" description=\"暂无数据\" />\n </div>\n ) : (\n flatNodes.map((node) => {\n if (!isVisible(node)) return null;\n const isLeaf = !hasChildrenMap.get(node.id);\n const isExpanded = expandedKeys.has(node.id);\n const isSingleSelected = !multiple && localValue === node.id;\n const selectedArr = multiple ? (localValue as string[]) || [] : [];\n let isMultiChecked = multiple && selectedArr.includes(node.id);\n let isIndeterminate = false;\n if (multiple && leafOnly && !isLeaf) {\n const leaves = leafDescendantsMap.get(node.id) || [];\n const selectedLeafCount = leaves.filter((id) => selectedArr.includes(id)).length;\n isMultiChecked = leaves.length > 0 && selectedLeafCount === leaves.length;\n isIndeterminate = selectedLeafCount > 0 && selectedLeafCount < leaves.length;\n }\n return (\n <div\n key={node.id}\n className={classNames(\n 'filter-tree-select-option',\n styles['filter-tree-select-option'],\n isSingleSelected && styles['filter-tree-select-option-selected'],\n )}\n style={{ paddingLeft: 8 + node.depth * 20 }}\n onClick={() =>\n multiple ? handleToggleMulti(node.id) : handleSingleSelect(node.id)\n }\n >\n {!isLeaf ? (\n <span\n className={styles['filter-tree-select-expand-icon']}\n onClick={(e) => {\n e.stopPropagation();\n toggleExpand(node.id);\n }}\n >\n {isExpanded || (showSearch && !!searchText) ? (\n <ChevronDown style={{ fontSize: 10 }} />\n ) : (\n <ChevronRight style={{ fontSize: 10 }} />\n )}\n </span>\n ) : (\n <span className={styles['filter-tree-select-expand-placeholder']} />\n )}\n {multiple && (\n <Checkbox\n checked={isMultiChecked}\n indeterminate={isIndeterminate}\n onClick={(e) => e.stopPropagation()}\n onChange={() => handleToggleMulti(node.id)}\n />\n )}\n <span className={styles['filter-tree-select-node-label']}>{node.name}</span>\n {!multiple && isSingleSelected && (\n <Check className={styles['filter-tree-select-option-check']} />\n )}\n </div>\n );\n })\n )}\n </div>\n {multiple &&\n (leafOnly\n ? ((localValue as string[]) || []).some((id) => !hasChildrenMap.get(id))\n : ((localValue as string[]) || []).length > 0) && (\n <div className={styles['filter-tree-select-selected-bar']}>\n <div className={styles['filter-tree-select-selected-label']}>已选:</div>\n <Space size={[4, 4]} wrap>\n {((localValue as string[]) || [])\n .filter((v) => !(leafOnly && hasChildrenMap.get(v)))\n .map((v) => (\n <span\n key={v}\n className={styles['filter-tree-select-selected-tag']}\n onClick={(e) => {\n e.stopPropagation();\n handleToggleMulti(v);\n }}\n >\n {labelMap.get(v) ?? v}\n <X className={styles['filter-tree-select-selected-remove']} />\n </span>\n ))}\n </Space>\n </div>\n )}\n </FilterPopover>\n );\n};\n\nexport default FilterTreeSelect;\n"],"names":["Search","Input","flattenTree","nodes","depth","parentId","result","node","_a","filterByKeyword","keyword","lower","matchTree","items","item","children","collectExpandableIds","ids","buildLabelMap","getLabel","map","walk","n","FilterTreeSelect","filterKey","label","propsTreeData","fetchUrl","fetchOptions","transformData","loadData","enabled","value","onChange","showSearch","multiple","leafOnly","active","hidden","display","dependsOn","clearOnDepsChange","getNodeLabel","panelExtra","panelWidth","loadingProp","onChangeRef","useRef","resolvedPanelWidth","resolvedLabel","values","depsKey","useFilterFieldBridge","fetchCtx","useMarsunFetch","useStaticOrUrl","fetchedTree","fetchLoading","useFetchData","loadedTree","setLoadedTree","useState","loadDataLoading","setLoadDataLoading","loadDataRef","useEffect","cancelled","next","sourceTree","optionsLoading","open","setOpen","localValue","setLocalValue","expandedKeys","setExpandedKeys","searchText","setSearchText","registerFn","useFilterRegister","visibilityCtx","labelMap","useMemo","confirmedValueLabel","arr","v","resolveFilterVisible","filteredTree","flatNodes","hasChildrenMap","childrenMap","childIds","collectAll","parentMap","child","leafDescendantsMap","leaves","collectLeaves","toggleExpand","useCallback","nodeId","prev","handleSingleSelect","handleToggleMulti","leafIds","id","remove","removeSet","isVisible","jsxs","FilterPopover","jsx","classNames","styles","Spin","Empty","isLeaf","isExpanded","isSingleSelected","selectedArr","isMultiChecked","isIndeterminate","selectedLeafCount","e","ChevronDown","ChevronRight","Checkbox","Check","Space","X"],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsx as i, jsxs as h } from "react/jsx-runtime";
|
|
2
|
-
import { ChevronUp as s, ChevronDown as f, Loader2 as p } from "../../Icons/index.js";
|
|
3
2
|
import e from "classnames";
|
|
4
3
|
import r from "./style.module.scss.js";
|
|
5
|
-
|
|
4
|
+
import { ChevronUp as f } from "../../Icons/ChevronUp.js";
|
|
5
|
+
import { ChevronDown as s } from "../../Icons/ChevronDown.js";
|
|
6
|
+
import { Loader2 as p } from "../../Icons/Loader2.js";
|
|
7
|
+
const C = ({
|
|
6
8
|
label: l,
|
|
7
9
|
active: o,
|
|
8
10
|
onClick: a,
|
|
@@ -10,25 +12,25 @@ const y = ({
|
|
|
10
12
|
loading: g = !1,
|
|
11
13
|
pill: c = !1,
|
|
12
14
|
className: n = "",
|
|
13
|
-
children:
|
|
15
|
+
children: m
|
|
14
16
|
}) => {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
+
const v = t !== void 0 ? t ? /* @__PURE__ */ i(
|
|
18
|
+
f,
|
|
17
19
|
{
|
|
18
20
|
className: e("filter-trigger-chevron", r["filter-trigger-chevron"])
|
|
19
21
|
}
|
|
20
22
|
) : /* @__PURE__ */ i(
|
|
21
|
-
|
|
23
|
+
s,
|
|
22
24
|
{
|
|
23
25
|
className: e("filter-trigger-chevron", r["filter-trigger-chevron"])
|
|
24
26
|
}
|
|
25
27
|
) : o ? /* @__PURE__ */ i(
|
|
26
|
-
|
|
28
|
+
f,
|
|
27
29
|
{
|
|
28
30
|
className: e("filter-trigger-chevron", r["filter-trigger-chevron"])
|
|
29
31
|
}
|
|
30
32
|
) : /* @__PURE__ */ i(
|
|
31
|
-
|
|
33
|
+
s,
|
|
32
34
|
{
|
|
33
35
|
className: e("filter-trigger-chevron", r["filter-trigger-chevron"])
|
|
34
36
|
}
|
|
@@ -48,7 +50,7 @@ const y = ({
|
|
|
48
50
|
onClick: a,
|
|
49
51
|
"aria-busy": g || void 0,
|
|
50
52
|
children: [
|
|
51
|
-
|
|
53
|
+
m ?? (typeof l == "function" ? null : l),
|
|
52
54
|
g ? /* @__PURE__ */ i(
|
|
53
55
|
p,
|
|
54
56
|
{
|
|
@@ -56,12 +58,12 @@ const y = ({
|
|
|
56
58
|
size: 12,
|
|
57
59
|
className: e("filter-trigger-loader", r["filter-trigger-loader"])
|
|
58
60
|
}
|
|
59
|
-
) :
|
|
61
|
+
) : v
|
|
60
62
|
]
|
|
61
63
|
}
|
|
62
64
|
);
|
|
63
65
|
};
|
|
64
66
|
export {
|
|
65
|
-
|
|
67
|
+
C as default
|
|
66
68
|
};
|
|
67
69
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Filter/FilterTrigger/index.tsx"],"sourcesContent":["import { ChevronDown, ChevronUp, Loader2 } from '@/components/Icons';\nimport classNames from 'classnames';\nimport React from 'react';\nimport type { BaseFilterProps } from '../types';\nimport styles from './style.module.scss';\n\ninterface FilterTriggerProps extends Omit<BaseFilterProps, 'filterKey'> {\n onClick?: (e: React.MouseEvent) => void;\n open?: boolean;\n /** 选项加载中:右侧用 Loader2 spin 替换 chevron */\n loading?: boolean;\n /** 移动端 pill 外形 */\n pill?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * 筛选触发按钮\n * 未选中:灰色文字 + 下箭头\n * 已选:主题色文字 + 浅底 + 上箭头\n * 打开(open):visited 实心主色 + 白字(对齐 ReactFilter)\n * loading:右侧 Loader2 spin(替换 chevron)\n */\nconst FilterTrigger: React.FC<FilterTriggerProps> = ({\n label,\n active,\n onClick,\n open,\n loading = false,\n pill = false,\n className = '',\n children,\n}) => {\n const chevron =\n open !== undefined ? (\n open ? (\n <ChevronUp\n className={classNames('filter-trigger-chevron', styles['filter-trigger-chevron'])}\n />\n ) : (\n <ChevronDown\n className={classNames('filter-trigger-chevron', styles['filter-trigger-chevron'])}\n />\n )\n ) : !active ? (\n <ChevronDown\n className={classNames('filter-trigger-chevron', styles['filter-trigger-chevron'])}\n />\n ) : (\n <ChevronUp\n className={classNames('filter-trigger-chevron', styles['filter-trigger-chevron'])}\n />\n );\n\n return (\n <span\n className={classNames(\n 'filter-trigger-root',\n styles['filter-trigger-root'],\n active\n ? ['filter-trigger-active', styles['filter-trigger-active']]\n : ['filter-trigger-inactive', styles['filter-trigger-inactive']],\n open && ['filter-trigger-visited', styles['filter-trigger-visited']],\n pill && ['filter-trigger-pill', styles['filter-trigger-pill']],\n loading && 'filter-trigger-loading',\n className,\n )}\n onClick={onClick}\n aria-busy={loading || undefined}\n >\n {children ?? (typeof label === 'function' ? null : label)}\n {loading ? (\n <Loader2\n spin\n size={12}\n className={classNames('filter-trigger-loader', styles['filter-trigger-loader'])}\n />\n ) : (\n chevron\n )}\n </span>\n );\n};\n\nexport default FilterTrigger;\nexport type { FilterTriggerProps };\n"],"names":["FilterTrigger","label","active","onClick","open","loading","pill","className","children","chevron","jsx","ChevronUp","classNames","styles","ChevronDown","jsxs","Loader2"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Filter/FilterTrigger/index.tsx"],"sourcesContent":["import { ChevronDown, ChevronUp, Loader2 } from '@/components/Icons';\nimport classNames from 'classnames';\nimport React from 'react';\nimport type { BaseFilterProps } from '../types';\nimport styles from './style.module.scss';\n\ninterface FilterTriggerProps extends Omit<BaseFilterProps, 'filterKey'> {\n onClick?: (e: React.MouseEvent) => void;\n open?: boolean;\n /** 选项加载中:右侧用 Loader2 spin 替换 chevron */\n loading?: boolean;\n /** 移动端 pill 外形 */\n pill?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * 筛选触发按钮\n * 未选中:灰色文字 + 下箭头\n * 已选:主题色文字 + 浅底 + 上箭头\n * 打开(open):visited 实心主色 + 白字(对齐 ReactFilter)\n * loading:右侧 Loader2 spin(替换 chevron)\n */\nconst FilterTrigger: React.FC<FilterTriggerProps> = ({\n label,\n active,\n onClick,\n open,\n loading = false,\n pill = false,\n className = '',\n children,\n}) => {\n const chevron =\n open !== undefined ? (\n open ? (\n <ChevronUp\n className={classNames('filter-trigger-chevron', styles['filter-trigger-chevron'])}\n />\n ) : (\n <ChevronDown\n className={classNames('filter-trigger-chevron', styles['filter-trigger-chevron'])}\n />\n )\n ) : !active ? (\n <ChevronDown\n className={classNames('filter-trigger-chevron', styles['filter-trigger-chevron'])}\n />\n ) : (\n <ChevronUp\n className={classNames('filter-trigger-chevron', styles['filter-trigger-chevron'])}\n />\n );\n\n return (\n <span\n className={classNames(\n 'filter-trigger-root',\n styles['filter-trigger-root'],\n active\n ? ['filter-trigger-active', styles['filter-trigger-active']]\n : ['filter-trigger-inactive', styles['filter-trigger-inactive']],\n open && ['filter-trigger-visited', styles['filter-trigger-visited']],\n pill && ['filter-trigger-pill', styles['filter-trigger-pill']],\n loading && 'filter-trigger-loading',\n className,\n )}\n onClick={onClick}\n aria-busy={loading || undefined}\n >\n {children ?? (typeof label === 'function' ? null : label)}\n {loading ? (\n <Loader2\n spin\n size={12}\n className={classNames('filter-trigger-loader', styles['filter-trigger-loader'])}\n />\n ) : (\n chevron\n )}\n </span>\n );\n};\n\nexport default FilterTrigger;\nexport type { FilterTriggerProps };\n"],"names":["FilterTrigger","label","active","onClick","open","loading","pill","className","children","chevron","jsx","ChevronUp","classNames","styles","ChevronDown","jsxs","Loader2"],"mappings":";;;;;;AAwBA,MAAMA,IAA8C,CAAC;AAAA,EACnD,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,UAAAC;AACF,MAAM;AACJ,QAAMC,IACJL,MAAS,SACPA,IACE,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAW,0BAA0BC,EAAO,wBAAwB,CAAC;AAAA,IAAA;AAAA,EAAA,IAGlF,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,WAAWF,EAAW,0BAA0BC,EAAO,wBAAwB,CAAC;AAAA,IAAA;AAAA,EAAA,IAGjFX,IAKH,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAW,0BAA0BC,EAAO,wBAAwB,CAAC;AAAA,IAAA;AAAA,EAAA,IALlF,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,WAAWF,EAAW,0BAA0BC,EAAO,wBAAwB,CAAC;AAAA,IAAA;AAAA,EAAA;AAQtF,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWH;AAAA,QACT;AAAA,QACAC,EAAO,qBAAqB;AAAA,QAC5BX,IACI,CAAC,yBAAyBW,EAAO,uBAAuB,CAAC,IACzD,CAAC,2BAA2BA,EAAO,yBAAyB,CAAC;AAAA,QACjET,KAAQ,CAAC,0BAA0BS,EAAO,wBAAwB,CAAC;AAAA,QACnEP,KAAQ,CAAC,uBAAuBO,EAAO,qBAAqB,CAAC;AAAA,QAC7DR,KAAW;AAAA,QACXE;AAAA,MAAA;AAAA,MAEF,SAAAJ;AAAA,MACA,aAAWE,KAAW;AAAA,MAErB,UAAA;AAAA,QAAAG,MAAa,OAAOP,KAAU,aAAa,OAAOA;AAAA,QAClDI,IACC,gBAAAK;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,MAAI;AAAA,YACJ,MAAM;AAAA,YACN,WAAWJ,EAAW,yBAAyBC,EAAO,uBAAuB,CAAC;AAAA,UAAA;AAAA,QAAA,IAGhFJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs as o, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { Popover as h } from "antd";
|
|
2
|
+
import { Popover as w } from "antd";
|
|
4
3
|
import r from "./style.module.scss.js";
|
|
5
4
|
import n from "classnames";
|
|
5
|
+
import { Info as h } from "../../Icons/Info.js";
|
|
6
6
|
const P = ({ option: a, className: l }) => {
|
|
7
7
|
const { label: t, departmentName: i, email: c, phone: m, employeeId: s } = a, d = /* @__PURE__ */ o("div", { className: n("person-option-row-root", r["person-option-row-root"]), children: [
|
|
8
8
|
s ? /* @__PURE__ */ o("div", { children: [
|
|
@@ -21,8 +21,8 @@ const P = ({ option: a, className: l }) => {
|
|
|
21
21
|
return /* @__PURE__ */ o("div", { className: n("person-option-row-person-row", r["person-option-row-person-row"], l), children: [
|
|
22
22
|
/* @__PURE__ */ e("span", { className: n("person-option-row-container", r["person-option-row-container"]), children: t }),
|
|
23
23
|
i ? /* @__PURE__ */ e("span", { className: n("person-option-row-wrapper", r["person-option-row-wrapper"]), children: i }) : null,
|
|
24
|
-
/* @__PURE__ */ e(
|
|
25
|
-
|
|
24
|
+
/* @__PURE__ */ e(w, { content: d, title: t, trigger: "hover", placement: "right", children: /* @__PURE__ */ e(
|
|
25
|
+
h,
|
|
26
26
|
{
|
|
27
27
|
className: n("person-option-row-inner", r["person-option-row-inner"]),
|
|
28
28
|
onMouseDown: (p) => p.stopPropagation(),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ArrowLeft: import('react').ForwardRefExoticComponent<Omit<import('./createIcon').IconProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArrowLeft.js","sources":["../../../src/components/Icons/ArrowLeft.tsx"],"sourcesContent":["import { ArrowLeft as LucideArrowLeft } from 'lucide-react';\nimport { createIcon } from './createIcon';\n\nexport const ArrowLeft = createIcon(LucideArrowLeft);\n"],"names":["ArrowLeft","createIcon","LucideArrowLeft"],"mappings":";;AAGO,MAAMA,IAAYC,EAAWC,CAAe;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ArrowLeftRight: import('react').ForwardRefExoticComponent<Omit<import('./createIcon').IconProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArrowLeftRight.js","sources":["../../../src/components/Icons/ArrowLeftRight.tsx"],"sourcesContent":["import { ArrowLeftRight as LucideArrowLeftRight } from 'lucide-react';\nimport { createIcon } from './createIcon';\n\nexport const ArrowLeftRight = createIcon(LucideArrowLeftRight);\n"],"names":["ArrowLeftRight","createIcon","LucideArrowLeftRight"],"mappings":";;AAGO,MAAMA,IAAiBC,EAAWC,CAAoB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const BarChart3: import('react').ForwardRefExoticComponent<Omit<import('./createIcon').IconProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BarChart3.js","sources":["../../../src/components/Icons/BarChart3.tsx"],"sourcesContent":["import { BarChart3 as LucideBarChart3 } from 'lucide-react';\nimport { createIcon } from './createIcon';\n\nexport const BarChart3 = createIcon(LucideBarChart3);\n"],"names":["BarChart3","createIcon","LucideBarChart3"],"mappings":";;AAGO,MAAMA,IAAYC,EAAWC,CAAe;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Bell: import('react').ForwardRefExoticComponent<Omit<import('./createIcon').IconProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bell.js","sources":["../../../src/components/Icons/Bell.tsx"],"sourcesContent":["import { Bell as LucideBell } from 'lucide-react';\nimport { createIcon } from './createIcon';\n\nexport const Bell = createIcon(LucideBell);\n"],"names":["Bell","createIcon","LucideBell"],"mappings":";;AAGO,MAAMA,IAAOC,EAAWC,CAAU;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const BookOpen: import('react').ForwardRefExoticComponent<Omit<import('./createIcon').IconProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BookOpen.js","sources":["../../../src/components/Icons/BookOpen.tsx"],"sourcesContent":["import { BookOpen as LucideBookOpen } from 'lucide-react';\nimport { createIcon } from './createIcon';\n\nexport const BookOpen = createIcon(LucideBookOpen);\n"],"names":["BookOpen","createIcon","LucideBookOpen"],"mappings":";;AAGO,MAAMA,IAAWC,EAAWC,CAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Bot: import('react').ForwardRefExoticComponent<Omit<import('./createIcon').IconProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
|