@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnConfigPanel.js","sources":["../../../src/components/Table/ColumnConfigPanel.tsx"],"sourcesContent":["import { useCallback, useMemo, useState, type DragEvent, type FC, type ReactNode } from 'react';\nimport { Button, Checkbox, Collapse, Empty, Input, Popover, Space, Tooltip } from 'antd';\nimport { ChevronDown, ChevronRight, Settings, Undo2 } from '../Icons';\nimport type { ColumnConfigPanelItem, TableColumnConfigItem } from './columnConfigTypes';\nimport { mergePanelWithConfig, panelItemsToConfig, splitVisibleHidden } from './columnConfigUtils';\nimport styles from './columnConfig.module.scss';\n\ntype ColumnConfigPanelProps = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n defaultItems: ColumnConfigPanelItem[];\n savedConfig: TableColumnConfigItem[] | null;\n onConfirm: (items: TableColumnConfigItem[]) => void | Promise<void>;\n children: ReactNode;\n};\n\nfunction flattenSearch(items: ColumnConfigPanelItem[], q: string): boolean {\n if (!q) return true;\n const lower = q.toLowerCase();\n return items.some(\n (it) =>\n it.label.toLowerCase().includes(lower) ||\n it.id.toLowerCase().includes(lower) ||\n (it.children ? flattenSearch(it.children, q) : false),\n );\n}\n\nconst DragList: FC<{\n items: ColumnConfigPanelItem[];\n search: string;\n onChange: (next: ColumnConfigPanelItem[]) => void;\n onToggle: (id: string, hidden: boolean) => void;\n depth?: number;\n collapsedIds: Set<string>;\n onToggleCollapse: (id: string) => void;\n}> = ({ items, search, onChange, onToggle, depth = 0, collapsedIds, onToggleCollapse }) => {\n const [dragIndex, setDragIndex] = useState<number | null>(null);\n const searching = Boolean(search.trim());\n\n const filtered = useMemo(() => {\n if (!search.trim()) return items.map((it, i) => ({ it, i }));\n return items.map((it, i) => ({ it, i })).filter(({ it }) => flattenSearch([it], search.trim()));\n }, [items, search]);\n\n const onDragStart = (e: DragEvent, index: number) => {\n setDragIndex(index);\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setData('text/plain', String(index));\n };\n\n const onDrop = (e: DragEvent, toIndex: number) => {\n e.preventDefault();\n const from = dragIndex ?? Number(e.dataTransfer.getData('text/plain'));\n setDragIndex(null);\n if (!Number.isFinite(from) || from === toIndex) return;\n const next = [...items];\n const [moved] = next.splice(from, 1);\n if (!moved) return;\n next.splice(toIndex, 0, moved);\n onChange(next);\n };\n\n if (!filtered.length) {\n return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description=\"暂无数据\" />;\n }\n\n return (\n <ul className={styles.list} style={{ paddingLeft: depth ? 12 : 0 }}>\n {filtered.map(({ it, i }) => {\n const hasChildren = Boolean(it.children?.length);\n const expanded = searching || !collapsedIds.has(it.id);\n return (\n <li key={it.id} className={styles.listItem}>\n <div\n className={styles.row}\n draggable={!searching}\n onDragStart={(e) => onDragStart(e, i)}\n onDragOver={(e) => e.preventDefault()}\n onDrop={(e) => onDrop(e, i)}\n >\n {hasChildren ? (\n <button\n type=\"button\"\n className={styles.foldBtn}\n aria-label={expanded ? '折叠' : '展开'}\n aria-expanded={expanded}\n onClick={(e) => {\n e.stopPropagation();\n onToggleCollapse(it.id);\n }}\n >\n {expanded ? <ChevronDown size={14} /> : <ChevronRight size={14} />}\n </button>\n ) : (\n <span className={styles.foldSpacer} aria-hidden />\n )}\n <span className={styles.grip} aria-hidden>\n ⠿\n </span>\n <Checkbox checked={!it.hidden} onChange={(e) => onToggle(it.id, !e.target.checked)}>\n <span className={styles.label}>{it.label || it.id}</span>\n </Checkbox>\n </div>\n {hasChildren && expanded ? (\n <DragList\n items={it.children!}\n search={search}\n depth={depth + 1}\n collapsedIds={collapsedIds}\n onToggleCollapse={onToggleCollapse}\n onChange={(childNext) => {\n const next = items.map((x) =>\n x.id === it.id ? { ...x, children: childNext } : x,\n );\n onChange(next);\n }}\n onToggle={onToggle}\n />\n ) : null}\n </li>\n );\n })}\n </ul>\n );\n};\n\nfunction toggleInTree(\n items: ColumnConfigPanelItem[],\n id: string,\n hidden: boolean,\n): ColumnConfigPanelItem[] {\n return items.map((it) => {\n if (it.id === id) {\n const children = it.children?.map((c) => setHiddenDeep(c, hidden));\n return { ...it, hidden, children };\n }\n if (it.children) {\n const children = toggleInTree(it.children, id, hidden);\n const allHidden = children.every((c) => c.hidden);\n return {\n ...it,\n children,\n hidden: allHidden ? true : !hidden && it.id !== id ? false : it.hidden,\n };\n }\n return it;\n });\n}\n\nfunction setHiddenDeep(item: ColumnConfigPanelItem, hidden: boolean): ColumnConfigPanelItem {\n return {\n ...item,\n hidden,\n children: item.children?.map((c) => setHiddenDeep(c, hidden)),\n };\n}\n\n/** 将显隐两区合并回完整顺序:visible 在前,hidden 在后(保持各自内部拖拽序) */\nfunction mergeSections(\n visible: ColumnConfigPanelItem[],\n hidden: ColumnConfigPanelItem[],\n): ColumnConfigPanelItem[] {\n return [...visible, ...hidden];\n}\n\nexport const ColumnConfigPopover: FC<ColumnConfigPanelProps> = ({\n open,\n onOpenChange,\n defaultItems,\n savedConfig,\n onConfirm,\n children,\n}) => {\n const [draft, setDraft] = useState<ColumnConfigPanelItem[]>([]);\n const [searchVisible, setSearchVisible] = useState('');\n const [searchHidden, setSearchHidden] = useState('');\n const [saving, setSaving] = useState(false);\n const [collapsedIds, setCollapsedIds] = useState<Set<string>>(() => new Set());\n\n const syncDraft = useCallback(() => {\n setDraft(mergePanelWithConfig(defaultItems, savedConfig));\n setSearchVisible('');\n setSearchHidden('');\n setCollapsedIds(new Set());\n }, [defaultItems, savedConfig]);\n\n const handleOpenChange = (next: boolean) => {\n if (next) syncDraft();\n onOpenChange(next);\n };\n\n const { visible, hidden } = useMemo(() => splitVisibleHidden(draft), [draft]);\n /** 仅顶层 hidden,供可见区拖拽后 merge,避免把「摘出的二/三级扁平项」写回成顶层 */\n const topLevelHidden = useMemo(() => draft.filter((d) => d.hidden), [draft]);\n\n const setVisibleList = (list: ColumnConfigPanelItem[]) => {\n setDraft(mergeSections(list, topLevelHidden));\n };\n const setHiddenList = (list: ColumnConfigPanelItem[]) => {\n const topIds = new Set(topLevelHidden.map((d) => d.id));\n const newTopHidden = list.filter((i) => topIds.has(i.id));\n setDraft(\n mergeSections(\n draft.filter((d) => !d.hidden),\n newTopHidden,\n ),\n );\n };\n\n const onToggle = (id: string, nextHidden: boolean) => {\n setDraft((prev) => toggleInTree(prev, id, nextHidden));\n };\n\n const onToggleCollapse = useCallback((id: string) => {\n setCollapsedIds((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n const onReset = () => {\n setDraft(defaultItems.map((d) => ({ ...d, children: d.children?.map((c) => ({ ...c })) })));\n setCollapsedIds(new Set());\n };\n\n const onOk = async () => {\n setSaving(true);\n try {\n await onConfirm(panelItemsToConfig(draft));\n onOpenChange(false);\n } finally {\n setSaving(false);\n }\n };\n\n const content = (\n <div className={styles.panel} data-ui=\"table-column-config\">\n <div className={styles.header}>\n <span className={styles.title}>编辑表格</span>\n <Tooltip title=\"恢复默认\">\n <button type=\"button\" className={styles.resetBtn} onClick={onReset} aria-label=\"恢复默认\">\n <Undo2 size={16} />\n </button>\n </Tooltip>\n </div>\n <Collapse\n className={styles.collapse}\n defaultActiveKey={['visible', 'hidden']}\n ghost\n items={[\n {\n key: 'visible',\n label: '显示的信息',\n children: (\n <>\n <Input\n allowClear\n size=\"small\"\n className={styles.search}\n placeholder=\"搜索\"\n value={searchVisible}\n onChange={(e) => setSearchVisible(e.target.value)}\n />\n <DragList\n items={visible}\n search={searchVisible}\n onChange={setVisibleList}\n onToggle={onToggle}\n collapsedIds={collapsedIds}\n onToggleCollapse={onToggleCollapse}\n />\n </>\n ),\n },\n {\n key: 'hidden',\n label: '隐藏的信息',\n children: (\n <>\n <Input\n allowClear\n size=\"small\"\n className={styles.search}\n placeholder=\"搜索\"\n value={searchHidden}\n onChange={(e) => setSearchHidden(e.target.value)}\n />\n <DragList\n items={hidden}\n search={searchHidden}\n onChange={setHiddenList}\n onToggle={onToggle}\n collapsedIds={collapsedIds}\n onToggleCollapse={onToggleCollapse}\n />\n </>\n ),\n },\n ]}\n />\n <div className={styles.footer}>\n <Space>\n <Button size=\"small\" onClick={() => onOpenChange(false)}>\n 取消\n </Button>\n <Button type=\"primary\" size=\"small\" loading={saving} onClick={() => void onOk()}>\n 确定\n </Button>\n </Space>\n </div>\n </div>\n );\n\n return (\n <Popover\n trigger=\"click\"\n placement=\"bottomRight\"\n open={open}\n onOpenChange={handleOpenChange}\n content={content}\n overlayClassName={styles.overlay}\n arrow={false}\n >\n {children}\n </Popover>\n );\n};\n\nexport function ColumnConfigTrigger({\n open,\n onOpenChange,\n defaultItems,\n savedConfig,\n onConfirm,\n}: Omit<ColumnConfigPanelProps, 'children'>) {\n return (\n <ColumnConfigPopover\n open={open}\n onOpenChange={onOpenChange}\n defaultItems={defaultItems}\n savedConfig={savedConfig}\n onConfirm={onConfirm}\n >\n <button\n type=\"button\"\n className={styles.gearBtn}\n aria-label=\"编辑表格\"\n onClick={(e) => e.stopPropagation()}\n >\n <Settings size={14} />\n </button>\n </ColumnConfigPopover>\n );\n}\n"],"names":["flattenSearch","items","q","lower","it","DragList","search","onChange","onToggle","depth","collapsedIds","onToggleCollapse","dragIndex","setDragIndex","useState","searching","filtered","useMemo","i","onDragStart","e","index","onDrop","toIndex","from","next","moved","styles","hasChildren","_a","expanded","jsxs","jsx","ChevronDown","ChevronRight","Checkbox","childNext","x","Empty","toggleInTree","id","hidden","children","setHiddenDeep","allHidden","c","item","mergeSections","visible","ColumnConfigPopover","open","onOpenChange","defaultItems","savedConfig","onConfirm","draft","setDraft","searchVisible","setSearchVisible","searchHidden","setSearchHidden","saving","setSaving","setCollapsedIds","syncDraft","useCallback","mergePanelWithConfig","handleOpenChange","splitVisibleHidden","topLevelHidden","d","setVisibleList","list","setHiddenList","topIds","newTopHidden","nextHidden","prev","onReset","onOk","panelItemsToConfig","content","Tooltip","Undo2","Collapse","Fragment","Input","Space","Button","Popover","ColumnConfigTrigger","Settings"],"mappings":";;;;;;AAgBA,SAASA,EAAcC,GAAgCC,GAAoB;AACzE,MAAI,CAACA,EAAG,QAAO;AACf,QAAMC,IAAQD,EAAE,YAAA;AAChB,SAAOD,EAAM;AAAA,IACX,CAACG,MACCA,EAAG,MAAM,cAAc,SAASD,CAAK,KACrCC,EAAG,GAAG,cAAc,SAASD,CAAK,MACjCC,EAAG,WAAWJ,EAAcI,EAAG,UAAUF,CAAC,IAAI;AAAA,EAAA;AAErD;AAEA,MAAMG,IAQD,CAAC,EAAE,OAAAJ,GAAO,QAAAK,GAAQ,UAAAC,GAAU,UAAAC,GAAU,OAAAC,IAAQ,GAAG,cAAAC,GAAc,kBAAAC,QAAuB;AACzF,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAwB,IAAI,GACxDC,IAAY,EAAQT,EAAO,KAAA,GAE3BU,IAAWC,EAAQ,MAClBX,EAAO,KAAA,IACLL,EAAM,IAAI,CAACG,GAAIc,OAAO,EAAE,IAAAd,GAAI,GAAAc,EAAA,EAAI,EAAE,OAAO,CAAC,EAAE,IAAAd,EAAA,MAASJ,EAAc,CAACI,CAAE,GAAGE,EAAO,KAAA,CAAM,CAAC,IADnEL,EAAM,IAAI,CAACG,GAAIc,OAAO,EAAE,IAAAd,GAAI,GAAAc,IAAI,GAE1D,CAACjB,GAAOK,CAAM,CAAC,GAEZa,IAAc,CAACC,GAAcC,MAAkB;AACnD,IAAAR,EAAaQ,CAAK,GAClBD,EAAE,aAAa,gBAAgB,QAC/BA,EAAE,aAAa,QAAQ,cAAc,OAAOC,CAAK,CAAC;AAAA,EACpD,GAEMC,IAAS,CAACF,GAAcG,MAAoB;AAChD,IAAAH,EAAE,eAAA;AACF,UAAMI,IAAOZ,KAAa,OAAOQ,EAAE,aAAa,QAAQ,YAAY,CAAC;AAErE,QADAP,EAAa,IAAI,GACb,CAAC,OAAO,SAASW,CAAI,KAAKA,MAASD,EAAS;AAChD,UAAME,IAAO,CAAC,GAAGxB,CAAK,GAChB,CAACyB,CAAK,IAAID,EAAK,OAAOD,GAAM,CAAC;AACnC,IAAKE,MACLD,EAAK,OAAOF,GAAS,GAAGG,CAAK,GAC7BnB,EAASkB,CAAI;AAAA,EACf;AAEA,SAAKT,EAAS,2BAKX,MAAA,EAAG,WAAWW,EAAO,MAAM,OAAO,EAAE,aAAalB,IAAQ,KAAK,EAAA,GAC5D,UAAAO,EAAS,IAAI,CAAC,EAAE,IAAAZ,GAAI,GAAAc,QAAQ;;AAC3B,UAAMU,IAAc,IAAQC,IAAAzB,EAAG,aAAH,QAAAyB,EAAa,SACnCC,IAAWf,KAAa,CAACL,EAAa,IAAIN,EAAG,EAAE;AACrD,WACE,gBAAA2B,EAAC,MAAA,EAAe,WAAWJ,EAAO,UAChC,UAAA;AAAA,MAAA,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWJ,EAAO;AAAA,UAClB,WAAW,CAACZ;AAAA,UACZ,aAAa,CAACK,MAAMD,EAAYC,GAAGF,CAAC;AAAA,UACpC,YAAY,CAACE,MAAMA,EAAE,eAAA;AAAA,UACrB,QAAQ,CAACA,MAAME,EAAOF,GAAGF,CAAC;AAAA,UAEzB,UAAA;AAAA,YAAAU,IACC,gBAAAI;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,WAAWL,EAAO;AAAA,gBAClB,cAAYG,IAAW,OAAO;AAAA,gBAC9B,iBAAeA;AAAA,gBACf,SAAS,CAACV,MAAM;AACd,kBAAAA,EAAE,gBAAA,GACFT,EAAiBP,EAAG,EAAE;AAAA,gBACxB;AAAA,gBAEC,UAAA0B,sBAAYG,IAAA,EAAY,MAAM,IAAI,IAAK,gBAAAD,EAACE,IAAA,EAAa,MAAM,GAAA,CAAI;AAAA,cAAA;AAAA,YAAA,IAGlE,gBAAAF,EAAC,QAAA,EAAK,WAAWL,EAAO,YAAY,eAAW,IAAC;AAAA,8BAEjD,QAAA,EAAK,WAAWA,EAAO,MAAM,eAAW,IAAC,UAAA,KAE1C;AAAA,YACA,gBAAAK,EAACG,GAAA,EAAS,SAAS,CAAC/B,EAAG,QAAQ,UAAU,CAACgB,MAAMZ,EAASJ,EAAG,IAAI,CAACgB,EAAE,OAAO,OAAO,GAC/E,UAAA,gBAAAY,EAAC,QAAA,EAAK,WAAWL,EAAO,OAAQ,UAAAvB,EAAG,SAASA,EAAG,GAAA,CAAG,EAAA,CACpD;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEDwB,KAAeE,IACd,gBAAAE;AAAA,QAAC3B;AAAA,QAAA;AAAA,UACC,OAAOD,EAAG;AAAA,UACV,QAAAE;AAAA,UACA,OAAOG,IAAQ;AAAA,UACf,cAAAC;AAAA,UACA,kBAAAC;AAAA,UACA,UAAU,CAACyB,MAAc;AACvB,kBAAMX,IAAOxB,EAAM;AAAA,cAAI,CAACoC,MACtBA,EAAE,OAAOjC,EAAG,KAAK,EAAE,GAAGiC,GAAG,UAAUD,MAAcC;AAAA,YAAA;AAEnD,YAAA9B,EAASkB,CAAI;AAAA,UACf;AAAA,UACA,UAAAjB;AAAA,QAAA;AAAA,MAAA,IAEA;AAAA,IAAA,EAAA,GA9CGJ,EAAG,EA+CZ;AAAA,EAEJ,CAAC,EAAA,CACH,sBA3DQkC,GAAA,EAAM,OAAOA,EAAM,wBAAwB,aAAY,QAAO;AA6D1E;AAEA,SAASC,EACPtC,GACAuC,GACAC,GACyB;AACzB,SAAOxC,EAAM,IAAI,CAACG,MAAO;;AACvB,QAAIA,EAAG,OAAOoC,GAAI;AAChB,YAAME,KAAWb,IAAAzB,EAAG,aAAH,gBAAAyB,EAAa,IAAI,CAAC,MAAMc,EAAc,GAAGF,CAAM;AAChE,aAAO,EAAE,GAAGrC,GAAI,QAAAqC,GAAQ,UAAAC,EAAA;AAAA,IAC1B;AACA,QAAItC,EAAG,UAAU;AACf,YAAMsC,IAAWH,EAAanC,EAAG,UAAUoC,GAAIC,CAAM,GAC/CG,IAAYF,EAAS,MAAM,CAACG,MAAMA,EAAE,MAAM;AAChD,aAAO;AAAA,QACL,GAAGzC;AAAA,QACH,UAAAsC;AAAA,QACA,QAAQE,IAAY,KAAO,CAACH,KAAUrC,EAAG,OAAOoC,IAAK,KAAQpC,EAAG;AAAA,MAAA;AAAA,IAEpE;AACA,WAAOA;AAAA,EACT,CAAC;AACH;AAEA,SAASuC,EAAcG,GAA6BL,GAAwC;;AAC1F,SAAO;AAAA,IACL,GAAGK;AAAA,IACH,QAAAL;AAAA,IACA,WAAUZ,IAAAiB,EAAK,aAAL,gBAAAjB,EAAe,IAAI,CAACgB,MAAMF,EAAcE,GAAGJ,CAAM;AAAA,EAAC;AAEhE;AAGA,SAASM,EACPC,GACAP,GACyB;AACzB,SAAO,CAAC,GAAGO,GAAS,GAAGP,CAAM;AAC/B;AAEO,MAAMQ,KAAkD,CAAC;AAAA,EAC9D,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAZ;AACF,MAAM;AACJ,QAAM,CAACa,GAAOC,CAAQ,IAAI1C,EAAkC,CAAA,CAAE,GACxD,CAAC2C,GAAeC,CAAgB,IAAI5C,EAAS,EAAE,GAC/C,CAAC6C,GAAcC,CAAe,IAAI9C,EAAS,EAAE,GAC7C,CAAC+C,GAAQC,CAAS,IAAIhD,EAAS,EAAK,GACpC,CAACJ,GAAcqD,CAAe,IAAIjD,EAAsB,MAAM,oBAAI,KAAK,GAEvEkD,IAAYC,EAAY,MAAM;AAClC,IAAAT,EAASU,GAAqBd,GAAcC,CAAW,CAAC,GACxDK,EAAiB,EAAE,GACnBE,EAAgB,EAAE,GAClBG,EAAgB,oBAAI,KAAK;AAAA,EAC3B,GAAG,CAACX,GAAcC,CAAW,CAAC,GAExBc,IAAmB,CAAC1C,MAAkB;AAC1C,IAAIA,KAAMuC,EAAA,GACVb,EAAa1B,CAAI;AAAA,EACnB,GAEM,EAAE,SAAAuB,GAAS,QAAAP,EAAA,IAAWxB,EAAQ,MAAMmD,GAAmBb,CAAK,GAAG,CAACA,CAAK,CAAC,GAEtEc,IAAiBpD,EAAQ,MAAMsC,EAAM,OAAO,CAACe,MAAMA,EAAE,MAAM,GAAG,CAACf,CAAK,CAAC,GAErEgB,IAAiB,CAACC,MAAkC;AACxD,IAAAhB,EAAST,EAAcyB,GAAMH,CAAc,CAAC;AAAA,EAC9C,GACMI,IAAgB,CAACD,MAAkC;AACvD,UAAME,IAAS,IAAI,IAAIL,EAAe,IAAI,CAACC,MAAMA,EAAE,EAAE,CAAC,GAChDK,IAAeH,EAAK,OAAO,CAACtD,MAAMwD,EAAO,IAAIxD,EAAE,EAAE,CAAC;AACxD,IAAAsC;AAAA,MACET;AAAA,QACEQ,EAAM,OAAO,CAACe,MAAM,CAACA,EAAE,MAAM;AAAA,QAC7BK;AAAA,MAAA;AAAA,IACF;AAAA,EAEJ,GAEMnE,IAAW,CAACgC,GAAYoC,MAAwB;AACpD,IAAApB,EAAS,CAACqB,MAAStC,EAAasC,GAAMrC,GAAIoC,CAAU,CAAC;AAAA,EACvD,GAEMjE,IAAmBsD,EAAY,CAACzB,MAAe;AACnD,IAAAuB,EAAgB,CAACc,MAAS;AACxB,YAAMpD,IAAO,IAAI,IAAIoD,CAAI;AACzB,aAAIpD,EAAK,IAAIe,CAAE,IAAGf,EAAK,OAAOe,CAAE,IAC3Bf,EAAK,IAAIe,CAAE,GACTf;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAA,CAAE,GAECqD,IAAU,MAAM;AACpB,IAAAtB,EAASJ,EAAa,IAAI,CAACkB;;AAAO,eAAE,GAAGA,GAAG,WAAUzC,IAAAyC,EAAE,aAAF,gBAAAzC,EAAY,IAAI,CAACgB,OAAO,EAAE,GAAGA,MAAI;AAAA,KAAI,CAAC,GAC1FkB,EAAgB,oBAAI,KAAK;AAAA,EAC3B,GAEMgB,IAAO,YAAY;AACvB,IAAAjB,EAAU,EAAI;AACd,QAAI;AACF,YAAMR,EAAU0B,GAAmBzB,CAAK,CAAC,GACzCJ,EAAa,EAAK;AAAA,IACpB,UAAA;AACE,MAAAW,EAAU,EAAK;AAAA,IACjB;AAAA,EACF,GAEMmB,IACJ,gBAAAlD,EAAC,OAAA,EAAI,WAAWJ,EAAO,OAAO,WAAQ,uBACpC,UAAA;AAAA,IAAA,gBAAAI,EAAC,OAAA,EAAI,WAAWJ,EAAO,QACrB,UAAA;AAAA,MAAA,gBAAAK,EAAC,QAAA,EAAK,WAAWL,EAAO,OAAO,UAAA,QAAI;AAAA,MACnC,gBAAAK,EAACkD,KAAQ,OAAM,QACb,4BAAC,UAAA,EAAO,MAAK,UAAS,WAAWvD,EAAO,UAAU,SAASmD,GAAS,cAAW,QAC7E,UAAA,gBAAA9C,EAACmD,KAAM,MAAM,GAAA,CAAI,GACnB,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAnD;AAAA,MAACoD;AAAA,MAAA;AAAA,QACC,WAAWzD,EAAO;AAAA,QAClB,kBAAkB,CAAC,WAAW,QAAQ;AAAA,QACtC,OAAK;AAAA,QACL,OAAO;AAAA,UACL;AAAA,YACE,KAAK;AAAA,YACL,OAAO;AAAA,YACP,UACE,gBAAAI,EAAAsD,GAAA,EACE,UAAA;AAAA,cAAA,gBAAArD;AAAA,gBAACsD;AAAA,gBAAA;AAAA,kBACC,YAAU;AAAA,kBACV,MAAK;AAAA,kBACL,WAAW3D,EAAO;AAAA,kBAClB,aAAY;AAAA,kBACZ,OAAO8B;AAAA,kBACP,UAAU,CAACrC,MAAMsC,EAAiBtC,EAAE,OAAO,KAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,cAElD,gBAAAY;AAAA,gBAAC3B;AAAA,gBAAA;AAAA,kBACC,OAAO2C;AAAA,kBACP,QAAQS;AAAA,kBACR,UAAUc;AAAA,kBACV,UAAA/D;AAAA,kBACA,cAAAE;AAAA,kBACA,kBAAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF,EAAA,CACF;AAAA,UAAA;AAAA,UAGJ;AAAA,YACE,KAAK;AAAA,YACL,OAAO;AAAA,YACP,UACE,gBAAAoB,EAAAsD,GAAA,EACE,UAAA;AAAA,cAAA,gBAAArD;AAAA,gBAACsD;AAAA,gBAAA;AAAA,kBACC,YAAU;AAAA,kBACV,MAAK;AAAA,kBACL,WAAW3D,EAAO;AAAA,kBAClB,aAAY;AAAA,kBACZ,OAAOgC;AAAA,kBACP,UAAU,CAACvC,MAAMwC,EAAgBxC,EAAE,OAAO,KAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEjD,gBAAAY;AAAA,gBAAC3B;AAAA,gBAAA;AAAA,kBACC,OAAOoC;AAAA,kBACP,QAAQkB;AAAA,kBACR,UAAUc;AAAA,kBACV,UAAAjE;AAAA,kBACA,cAAAE;AAAA,kBACA,kBAAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF,EAAA,CACF;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF;AAAA,IAAA;AAAA,sBAED,OAAA,EAAI,WAAWgB,EAAO,QACrB,4BAAC4D,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAvD,EAACwD,GAAA,EAAO,MAAK,SAAQ,SAAS,MAAMrC,EAAa,EAAK,GAAG,UAAA,KAAA,CAEzD;AAAA,MACA,gBAAAnB,EAACwD,GAAA,EAAO,MAAK,WAAU,MAAK,SAAQ,SAAS3B,GAAQ,SAAS,MAAM,KAAKkB,EAAA,GAAQ,UAAA,KAAA,CAEjF;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAGF,SACE,gBAAA/C;AAAA,IAACyD;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,WAAU;AAAA,MACV,MAAAvC;AAAA,MACA,cAAciB;AAAA,MACd,SAAAc;AAAA,MACA,kBAAkBtD,EAAO;AAAA,MACzB,OAAO;AAAA,MAEN,UAAAe;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASgD,GAAoB;AAAA,EAClC,MAAAxC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AACF,GAA6C;AAC3C,SACE,gBAAAtB;AAAA,IAACiB;AAAA,IAAA;AAAA,MACC,MAAAC;AAAA,MACA,cAAAC;AAAA,MACA,cAAAC;AAAA,MACA,aAAAC;AAAA,MACA,WAAAC;AAAA,MAEA,UAAA,gBAAAtB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAWL,EAAO;AAAA,UAClB,cAAW;AAAA,UACX,SAAS,CAACP,MAAMA,EAAE,gBAAA;AAAA,UAElB,UAAA,gBAAAY,EAAC2D,GAAA,EAAS,MAAM,GAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB;AAAA,EAAA;AAGN;"}
|
|
1
|
+
{"version":3,"file":"ColumnConfigPanel.js","sources":["../../../src/components/Table/ColumnConfigPanel.tsx"],"sourcesContent":["import { useCallback, useMemo, useState, type DragEvent, type FC, type ReactNode } from 'react';\nimport { Button, Checkbox, Collapse, Empty, Input, Popover, Space, Tooltip } from 'antd';\nimport { ChevronDown, ChevronRight, Settings, Undo2 } from '../Icons';\nimport type { ColumnConfigPanelItem, TableColumnConfigItem } from './columnConfigTypes';\nimport { mergePanelWithConfig, panelItemsToConfig, splitVisibleHidden } from './columnConfigUtils';\nimport styles from './columnConfig.module.scss';\n\ntype ColumnConfigPanelProps = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n defaultItems: ColumnConfigPanelItem[];\n savedConfig: TableColumnConfigItem[] | null;\n onConfirm: (items: TableColumnConfigItem[]) => void | Promise<void>;\n children: ReactNode;\n};\n\nfunction flattenSearch(items: ColumnConfigPanelItem[], q: string): boolean {\n if (!q) return true;\n const lower = q.toLowerCase();\n return items.some(\n (it) =>\n it.label.toLowerCase().includes(lower) ||\n it.id.toLowerCase().includes(lower) ||\n (it.children ? flattenSearch(it.children, q) : false),\n );\n}\n\nconst DragList: FC<{\n items: ColumnConfigPanelItem[];\n search: string;\n onChange: (next: ColumnConfigPanelItem[]) => void;\n onToggle: (id: string, hidden: boolean) => void;\n depth?: number;\n collapsedIds: Set<string>;\n onToggleCollapse: (id: string) => void;\n}> = ({ items, search, onChange, onToggle, depth = 0, collapsedIds, onToggleCollapse }) => {\n const [dragIndex, setDragIndex] = useState<number | null>(null);\n const searching = Boolean(search.trim());\n\n const filtered = useMemo(() => {\n if (!search.trim()) return items.map((it, i) => ({ it, i }));\n return items.map((it, i) => ({ it, i })).filter(({ it }) => flattenSearch([it], search.trim()));\n }, [items, search]);\n\n const onDragStart = (e: DragEvent, index: number) => {\n setDragIndex(index);\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setData('text/plain', String(index));\n };\n\n const onDrop = (e: DragEvent, toIndex: number) => {\n e.preventDefault();\n const from = dragIndex ?? Number(e.dataTransfer.getData('text/plain'));\n setDragIndex(null);\n if (!Number.isFinite(from) || from === toIndex) return;\n const next = [...items];\n const [moved] = next.splice(from, 1);\n if (!moved) return;\n next.splice(toIndex, 0, moved);\n onChange(next);\n };\n\n if (!filtered.length) {\n return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description=\"暂无数据\" />;\n }\n\n return (\n <ul className={styles.list} style={{ paddingLeft: depth ? 12 : 0 }}>\n {filtered.map(({ it, i }) => {\n const hasChildren = Boolean(it.children?.length);\n const expanded = searching || !collapsedIds.has(it.id);\n return (\n <li key={it.id} className={styles.listItem}>\n <div\n className={styles.row}\n draggable={!searching}\n onDragStart={(e) => onDragStart(e, i)}\n onDragOver={(e) => e.preventDefault()}\n onDrop={(e) => onDrop(e, i)}\n >\n {hasChildren ? (\n <button\n type=\"button\"\n className={styles.foldBtn}\n aria-label={expanded ? '折叠' : '展开'}\n aria-expanded={expanded}\n onClick={(e) => {\n e.stopPropagation();\n onToggleCollapse(it.id);\n }}\n >\n {expanded ? <ChevronDown size={14} /> : <ChevronRight size={14} />}\n </button>\n ) : (\n <span className={styles.foldSpacer} aria-hidden />\n )}\n <span className={styles.grip} aria-hidden>\n ⠿\n </span>\n <Checkbox checked={!it.hidden} onChange={(e) => onToggle(it.id, !e.target.checked)}>\n <span className={styles.label}>{it.label || it.id}</span>\n </Checkbox>\n </div>\n {hasChildren && expanded ? (\n <DragList\n items={it.children!}\n search={search}\n depth={depth + 1}\n collapsedIds={collapsedIds}\n onToggleCollapse={onToggleCollapse}\n onChange={(childNext) => {\n const next = items.map((x) =>\n x.id === it.id ? { ...x, children: childNext } : x,\n );\n onChange(next);\n }}\n onToggle={onToggle}\n />\n ) : null}\n </li>\n );\n })}\n </ul>\n );\n};\n\nfunction toggleInTree(\n items: ColumnConfigPanelItem[],\n id: string,\n hidden: boolean,\n): ColumnConfigPanelItem[] {\n return items.map((it) => {\n if (it.id === id) {\n const children = it.children?.map((c) => setHiddenDeep(c, hidden));\n return { ...it, hidden, children };\n }\n if (it.children) {\n const children = toggleInTree(it.children, id, hidden);\n const allHidden = children.every((c) => c.hidden);\n return {\n ...it,\n children,\n hidden: allHidden ? true : !hidden && it.id !== id ? false : it.hidden,\n };\n }\n return it;\n });\n}\n\nfunction setHiddenDeep(item: ColumnConfigPanelItem, hidden: boolean): ColumnConfigPanelItem {\n return {\n ...item,\n hidden,\n children: item.children?.map((c) => setHiddenDeep(c, hidden)),\n };\n}\n\n/** 将显隐两区合并回完整顺序:visible 在前,hidden 在后(保持各自内部拖拽序) */\nfunction mergeSections(\n visible: ColumnConfigPanelItem[],\n hidden: ColumnConfigPanelItem[],\n): ColumnConfigPanelItem[] {\n return [...visible, ...hidden];\n}\n\nexport const ColumnConfigPopover: FC<ColumnConfigPanelProps> = ({\n open,\n onOpenChange,\n defaultItems,\n savedConfig,\n onConfirm,\n children,\n}) => {\n const [draft, setDraft] = useState<ColumnConfigPanelItem[]>([]);\n const [searchVisible, setSearchVisible] = useState('');\n const [searchHidden, setSearchHidden] = useState('');\n const [saving, setSaving] = useState(false);\n const [collapsedIds, setCollapsedIds] = useState<Set<string>>(() => new Set());\n\n const syncDraft = useCallback(() => {\n setDraft(mergePanelWithConfig(defaultItems, savedConfig));\n setSearchVisible('');\n setSearchHidden('');\n setCollapsedIds(new Set());\n }, [defaultItems, savedConfig]);\n\n const handleOpenChange = (next: boolean) => {\n if (next) syncDraft();\n onOpenChange(next);\n };\n\n const { visible, hidden } = useMemo(() => splitVisibleHidden(draft), [draft]);\n /** 仅顶层 hidden,供可见区拖拽后 merge,避免把「摘出的二/三级扁平项」写回成顶层 */\n const topLevelHidden = useMemo(() => draft.filter((d) => d.hidden), [draft]);\n\n const setVisibleList = (list: ColumnConfigPanelItem[]) => {\n setDraft(mergeSections(list, topLevelHidden));\n };\n const setHiddenList = (list: ColumnConfigPanelItem[]) => {\n const topIds = new Set(topLevelHidden.map((d) => d.id));\n const newTopHidden = list.filter((i) => topIds.has(i.id));\n setDraft(\n mergeSections(\n draft.filter((d) => !d.hidden),\n newTopHidden,\n ),\n );\n };\n\n const onToggle = (id: string, nextHidden: boolean) => {\n setDraft((prev) => toggleInTree(prev, id, nextHidden));\n };\n\n const onToggleCollapse = useCallback((id: string) => {\n setCollapsedIds((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n const onReset = () => {\n setDraft(defaultItems.map((d) => ({ ...d, children: d.children?.map((c) => ({ ...c })) })));\n setCollapsedIds(new Set());\n };\n\n const onOk = async () => {\n setSaving(true);\n try {\n await onConfirm(panelItemsToConfig(draft));\n onOpenChange(false);\n } finally {\n setSaving(false);\n }\n };\n\n const content = (\n <div className={styles.panel} data-ui=\"table-column-config\">\n <div className={styles.header}>\n <span className={styles.title}>编辑表格</span>\n <Tooltip title=\"恢复默认\">\n <button type=\"button\" className={styles.resetBtn} onClick={onReset} aria-label=\"恢复默认\">\n <Undo2 size={16} />\n </button>\n </Tooltip>\n </div>\n <Collapse\n className={styles.collapse}\n defaultActiveKey={['visible', 'hidden']}\n ghost\n items={[\n {\n key: 'visible',\n label: '显示的信息',\n children: (\n <>\n <Input\n allowClear\n size=\"small\"\n className={styles.search}\n placeholder=\"搜索\"\n value={searchVisible}\n onChange={(e) => setSearchVisible(e.target.value)}\n />\n <DragList\n items={visible}\n search={searchVisible}\n onChange={setVisibleList}\n onToggle={onToggle}\n collapsedIds={collapsedIds}\n onToggleCollapse={onToggleCollapse}\n />\n </>\n ),\n },\n {\n key: 'hidden',\n label: '隐藏的信息',\n children: (\n <>\n <Input\n allowClear\n size=\"small\"\n className={styles.search}\n placeholder=\"搜索\"\n value={searchHidden}\n onChange={(e) => setSearchHidden(e.target.value)}\n />\n <DragList\n items={hidden}\n search={searchHidden}\n onChange={setHiddenList}\n onToggle={onToggle}\n collapsedIds={collapsedIds}\n onToggleCollapse={onToggleCollapse}\n />\n </>\n ),\n },\n ]}\n />\n <div className={styles.footer}>\n <Space>\n <Button size=\"small\" onClick={() => onOpenChange(false)}>\n 取消\n </Button>\n <Button type=\"primary\" size=\"small\" loading={saving} onClick={() => void onOk()}>\n 确定\n </Button>\n </Space>\n </div>\n </div>\n );\n\n return (\n <Popover\n trigger=\"click\"\n placement=\"bottomRight\"\n open={open}\n onOpenChange={handleOpenChange}\n content={content}\n overlayClassName={styles.overlay}\n arrow={false}\n >\n {children}\n </Popover>\n );\n};\n\nexport function ColumnConfigTrigger({\n open,\n onOpenChange,\n defaultItems,\n savedConfig,\n onConfirm,\n}: Omit<ColumnConfigPanelProps, 'children'>) {\n return (\n <ColumnConfigPopover\n open={open}\n onOpenChange={onOpenChange}\n defaultItems={defaultItems}\n savedConfig={savedConfig}\n onConfirm={onConfirm}\n >\n <button\n type=\"button\"\n className={styles.gearBtn}\n aria-label=\"编辑表格\"\n onClick={(e) => e.stopPropagation()}\n >\n <Settings size={14} />\n </button>\n </ColumnConfigPopover>\n );\n}\n"],"names":["flattenSearch","items","q","lower","it","DragList","search","onChange","onToggle","depth","collapsedIds","onToggleCollapse","dragIndex","setDragIndex","useState","searching","filtered","useMemo","i","onDragStart","e","index","onDrop","toIndex","from","next","moved","styles","hasChildren","_a","expanded","jsxs","jsx","ChevronDown","ChevronRight","Checkbox","childNext","x","Empty","toggleInTree","id","hidden","children","setHiddenDeep","allHidden","c","item","mergeSections","visible","ColumnConfigPopover","open","onOpenChange","defaultItems","savedConfig","onConfirm","draft","setDraft","searchVisible","setSearchVisible","searchHidden","setSearchHidden","saving","setSaving","setCollapsedIds","syncDraft","useCallback","mergePanelWithConfig","handleOpenChange","splitVisibleHidden","topLevelHidden","d","setVisibleList","list","setHiddenList","topIds","newTopHidden","nextHidden","prev","onReset","onOk","panelItemsToConfig","content","Tooltip","Undo2","Collapse","Fragment","Input","Space","Button","Popover","ColumnConfigTrigger","Settings"],"mappings":"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"}
|
|
@@ -2,15 +2,15 @@ import { jsxs as j, jsx as f } from "react/jsx-runtime";
|
|
|
2
2
|
import { useRef as zt, useState as U, useEffect as ot, useMemo as S, useCallback as E } from "react";
|
|
3
3
|
import { Space as Ft, Button as dt, Tooltip as pt, Table as kt } from "antd";
|
|
4
4
|
import M from "classnames";
|
|
5
|
-
import { Eye as ht } from "../Icons/index.js";
|
|
6
5
|
import { ColumnConfigTrigger as Ct } from "./ColumnConfigPanel.js";
|
|
7
|
-
import { applyColumnConfig as Dt, columnsToPanelItems as $t, columnsToConfig as jt, hideColumnAtPath as Bt, COLUMN_CONFIG_COL_KEY as Gt, isInternalColumnKey as
|
|
6
|
+
import { applyColumnConfig as Dt, columnsToPanelItems as $t, columnsToConfig as jt, hideColumnAtPath as Bt, COLUMN_CONFIG_COL_KEY as Gt, isInternalColumnKey as ht, shortChildId as Pt } from "./columnConfigUtils.js";
|
|
8
7
|
import { FLEX_SPACER_COL_KEY as fe } from "./columnConfigUtils.js";
|
|
9
8
|
import { emptyTablePrefs as Ut } from "./tablePrefsTypes.js";
|
|
10
9
|
import { normalizeHiddenRowKeys as Q, mergeTablePrefs as mt, applyHiddenRows as Mt } from "./tablePrefsUtils.js";
|
|
11
10
|
import { parseTablePrefs as he, serializeTablePrefs as ye } from "./tablePrefsUtils.js";
|
|
12
11
|
import o from "./style.module.scss.js";
|
|
13
12
|
import ft from "./columnConfig.module.scss.js";
|
|
13
|
+
import { Eye as yt } from "../Icons/Eye.js";
|
|
14
14
|
import Xt from "../Empty/Empty.js";
|
|
15
15
|
const Yt = { x: "max-content" }, T = 40, qt = 64;
|
|
16
16
|
function Zt(e) {
|
|
@@ -22,7 +22,7 @@ function gt(e) {
|
|
|
22
22
|
let a = 0;
|
|
23
23
|
for (const s of e) {
|
|
24
24
|
const L = s.key != null ? String(s.key) : "";
|
|
25
|
-
if (L &&
|
|
25
|
+
if (L && ht(L)) continue;
|
|
26
26
|
if ((i = s.children) != null && i.length) {
|
|
27
27
|
a += gt(s.children);
|
|
28
28
|
continue;
|
|
@@ -49,7 +49,7 @@ function Lt(e, a, i, s = [], L = 0, l) {
|
|
|
49
49
|
return e.map((r, d) => {
|
|
50
50
|
var O, x;
|
|
51
51
|
const b = Jt(r, d);
|
|
52
|
-
if (
|
|
52
|
+
if (ht(b)) return r;
|
|
53
53
|
const A = i ? Pt(i, b) : b, N = [...s, A], _ = r.onHeaderCell;
|
|
54
54
|
let p = l;
|
|
55
55
|
L === 0 && (p = (O = r.children) != null && O.length ? k++ : void 0);
|
|
@@ -64,7 +64,7 @@ function Lt(e, a, i, s = [], L = 0, l) {
|
|
|
64
64
|
onClick: (H) => {
|
|
65
65
|
H.stopPropagation(), a(N);
|
|
66
66
|
},
|
|
67
|
-
children: /* @__PURE__ */ f(
|
|
67
|
+
children: /* @__PURE__ */ f(yt, { size: 12 })
|
|
68
68
|
}
|
|
69
69
|
) })
|
|
70
70
|
] }), c = (H) => {
|
|
@@ -293,7 +293,7 @@ function oe({
|
|
|
293
293
|
onClick: (Nt) => {
|
|
294
294
|
Nt.stopPropagation(), rt(ct);
|
|
295
295
|
},
|
|
296
|
-
children: /* @__PURE__ */ f(
|
|
296
|
+
children: /* @__PURE__ */ f(yt, { size: 14 })
|
|
297
297
|
}
|
|
298
298
|
) })
|
|
299
299
|
] });
|
|
@@ -339,7 +339,7 @@ export {
|
|
|
339
339
|
oe as default,
|
|
340
340
|
Ut as emptyTablePrefs,
|
|
341
341
|
Bt as hideColumnAtPath,
|
|
342
|
-
|
|
342
|
+
ht as isInternalColumnKey,
|
|
343
343
|
mt as mergeTablePrefs,
|
|
344
344
|
Q as normalizeHiddenRowKeys,
|
|
345
345
|
he as parseTablePrefs,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsxs as s, Fragment as p, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import d from "
|
|
5
|
-
import
|
|
6
|
-
import C from "
|
|
2
|
+
import { Button as u, Tour as a } from "antd";
|
|
3
|
+
import f from "classnames";
|
|
4
|
+
import d, { useState as h } from "react";
|
|
5
|
+
import x from "./style.module.scss.js";
|
|
6
|
+
import { CircleHelp as C } from "../../Icons/CircleHelp.js";
|
|
7
7
|
const R = ({ steps: l, storageKey: t, autoOpen: n = !0 }) => {
|
|
8
|
-
const [c, e] =
|
|
9
|
-
|
|
8
|
+
const [c, e] = h(!1);
|
|
9
|
+
d.useEffect(() => {
|
|
10
10
|
if (!n || !t) return;
|
|
11
11
|
if (!localStorage.getItem(t)) {
|
|
12
12
|
const o = setTimeout(() => e(!0), 800);
|
|
@@ -17,15 +17,15 @@ const R = ({ steps: l, storageKey: t, autoOpen: n = !0 }) => {
|
|
|
17
17
|
e(!1), t && localStorage.setItem(t, "true");
|
|
18
18
|
};
|
|
19
19
|
return l.length ? /* @__PURE__ */ s(p, { children: [
|
|
20
|
-
/* @__PURE__ */ r(
|
|
20
|
+
/* @__PURE__ */ r(u, { type: "text", icon: /* @__PURE__ */ r(C, {}), onClick: () => e(!0), title: "导览" }),
|
|
21
21
|
/* @__PURE__ */ r(
|
|
22
|
-
|
|
22
|
+
a,
|
|
23
23
|
{
|
|
24
24
|
open: c,
|
|
25
25
|
onClose: i,
|
|
26
26
|
onFinish: i,
|
|
27
27
|
steps: l,
|
|
28
|
-
indicatorsRender: (m, o) => /* @__PURE__ */ s("span", { className:
|
|
28
|
+
indicatorsRender: (m, o) => /* @__PURE__ */ s("span", { className: f("app-tour-root", x["app-tour-root"]), children: [
|
|
29
29
|
m + 1,
|
|
30
30
|
" / ",
|
|
31
31
|
o
|
|
@@ -1,97 +1,101 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
3
|
-
import { message as y, Upload as U, Image as ie, Button as B, Typography as J } from "antd";
|
|
1
|
+
import { jsx as e, jsxs as b } from "react/jsx-runtime";
|
|
2
|
+
import { message as y, Upload as U, Image as tr, Button as B, Typography as J } from "antd";
|
|
4
3
|
import p from "react";
|
|
5
4
|
import a from "./style.module.scss.js";
|
|
6
5
|
import o from "classnames";
|
|
7
|
-
import
|
|
6
|
+
import { Plus as er } from "../Icons/Plus.js";
|
|
7
|
+
import { Inbox as lr } from "../Icons/Inbox.js";
|
|
8
|
+
import { Upload as or } from "../Icons/Upload.js";
|
|
9
|
+
import { File as ar } from "../Icons/File.js";
|
|
10
|
+
import ir, { SEMANTIC_COLORS as ur } from "../Tag/SemanticTag.js";
|
|
11
|
+
import { Trash2 as sr } from "../Icons/Trash2.js";
|
|
8
12
|
const _ = (l) => l < 1024 * 1024 ? `${(l / 1024).toFixed(0)}KB` : l < 1024 ** 3 ? `${(l / 1024 / 1024).toFixed(0)}M` : `${(l / 1024 ** 3).toFixed(1)}G`;
|
|
9
|
-
function
|
|
10
|
-
const
|
|
13
|
+
function nr(l, u, s) {
|
|
14
|
+
const t = [];
|
|
11
15
|
if (l) {
|
|
12
16
|
const f = l.split(",").map((g) => g.trim().replace(/^\./, "")).filter(Boolean);
|
|
13
|
-
f.length &&
|
|
17
|
+
f.length && t.push(`支持扩展名${f.join(",")}`);
|
|
14
18
|
}
|
|
15
|
-
return u &&
|
|
19
|
+
return u && t.push(`单个文件大小不超过${_(u)}`), s && t.push(`最多上传${s}个附件`), t.length ? /* @__PURE__ */ e(J.Text, { type: "secondary", className: o("upload-item", a["upload-item"]), children: t.join(",") }) : null;
|
|
16
20
|
}
|
|
17
|
-
function
|
|
21
|
+
function dr(l) {
|
|
18
22
|
const u = l.lastIndexOf(".");
|
|
19
23
|
return u >= 0 ? l.slice(u + 1).toUpperCase() : "";
|
|
20
24
|
}
|
|
21
|
-
function
|
|
25
|
+
function pr(l) {
|
|
22
26
|
return l.url ? l.url : l.thumbUrl ? l.thumbUrl : l.originFileObj ? URL.createObjectURL(l.originFileObj) : "";
|
|
23
27
|
}
|
|
24
|
-
const V = ({ fileList: l, onRemove: u, onPreview: s }) => l.length ? /* @__PURE__ */
|
|
28
|
+
const V = ({ fileList: l, onRemove: u, onPreview: s }) => l.length ? /* @__PURE__ */ e("div", { className: o("upload-link", a["upload-link"]), children: l.map((t) => {
|
|
25
29
|
var g, w, N;
|
|
26
|
-
const f = !!(
|
|
30
|
+
const f = !!(t.url || t.thumbUrl || (w = (g = t.originFileObj) == null ? void 0 : g.type) != null && w.startsWith("image/"));
|
|
27
31
|
return /* @__PURE__ */ b(
|
|
28
32
|
"div",
|
|
29
33
|
{
|
|
30
34
|
className: o(
|
|
31
35
|
o("upload-file-row", a["upload-file-row"]),
|
|
32
|
-
|
|
36
|
+
t.status === "error" && o("upload-file-row-error", a["upload-file-row-error"])
|
|
33
37
|
),
|
|
34
38
|
children: [
|
|
35
39
|
/* @__PURE__ */ b("div", { className: o("upload-label", a["upload-label"]), children: [
|
|
36
|
-
|
|
40
|
+
t.thumbUrl || t.url && ((N = t.type) != null && N.startsWith("image/")) ? /* @__PURE__ */ e(
|
|
37
41
|
"button",
|
|
38
42
|
{
|
|
39
43
|
type: "button",
|
|
40
44
|
className: o("upload-thumb-btn", a["upload-thumb-btn"]),
|
|
41
|
-
onClick: () => s == null ? void 0 : s(
|
|
45
|
+
onClick: () => s == null ? void 0 : s(t),
|
|
42
46
|
title: "预览",
|
|
43
|
-
children: /* @__PURE__ */
|
|
47
|
+
children: /* @__PURE__ */ e(
|
|
44
48
|
"img",
|
|
45
49
|
{
|
|
46
50
|
className: o("upload-thumb", a["upload-thumb"]),
|
|
47
|
-
src:
|
|
48
|
-
alt:
|
|
51
|
+
src: t.thumbUrl || t.url,
|
|
52
|
+
alt: t.name
|
|
49
53
|
}
|
|
50
54
|
)
|
|
51
55
|
}
|
|
52
|
-
) : /* @__PURE__ */
|
|
53
|
-
/* @__PURE__ */
|
|
54
|
-
/* @__PURE__ */
|
|
55
|
-
|
|
56
|
+
) : /* @__PURE__ */ e(ar, { className: o("upload-value", a["upload-value"]) }),
|
|
57
|
+
/* @__PURE__ */ e("span", { className: o("upload-meta", a["upload-meta"]), children: t.name }),
|
|
58
|
+
/* @__PURE__ */ e(
|
|
59
|
+
ir,
|
|
56
60
|
{
|
|
57
|
-
color:
|
|
61
|
+
color: ur.INFO,
|
|
58
62
|
className: o("upload-icon", a["upload-icon"]),
|
|
59
|
-
children:
|
|
63
|
+
children: dr(t.name)
|
|
60
64
|
}
|
|
61
65
|
),
|
|
62
|
-
|
|
66
|
+
t.size ? /* @__PURE__ */ e(
|
|
63
67
|
J.Text,
|
|
64
68
|
{
|
|
65
69
|
type: "secondary",
|
|
66
70
|
className: o("upload-title", a["upload-title"]),
|
|
67
|
-
children: _(
|
|
71
|
+
children: _(t.size)
|
|
68
72
|
}
|
|
69
73
|
) : null
|
|
70
74
|
] }),
|
|
71
75
|
/* @__PURE__ */ b("div", { className: o("upload-row-actions", a["upload-row-actions"]), children: [
|
|
72
|
-
f && s ? /* @__PURE__ */
|
|
73
|
-
/* @__PURE__ */
|
|
76
|
+
f && s ? /* @__PURE__ */ e(B, { type: "link", size: "small", onClick: () => s(t), children: "预览" }) : null,
|
|
77
|
+
/* @__PURE__ */ e(
|
|
74
78
|
B,
|
|
75
79
|
{
|
|
76
80
|
type: "text",
|
|
77
81
|
danger: !0,
|
|
78
82
|
size: "small",
|
|
79
|
-
icon: /* @__PURE__ */
|
|
80
|
-
onClick: () => u(
|
|
83
|
+
icon: /* @__PURE__ */ e(sr, {}),
|
|
84
|
+
onClick: () => u(t.uid),
|
|
81
85
|
className: o("upload-desc", a["upload-desc"])
|
|
82
86
|
}
|
|
83
87
|
)
|
|
84
88
|
] })
|
|
85
89
|
]
|
|
86
90
|
},
|
|
87
|
-
|
|
91
|
+
t.uid
|
|
88
92
|
);
|
|
89
|
-
}) }) : null,
|
|
93
|
+
}) }) : null, cr = p.forwardRef(
|
|
90
94
|
({
|
|
91
95
|
value: l,
|
|
92
96
|
onChange: u,
|
|
93
97
|
className: s,
|
|
94
|
-
variant:
|
|
98
|
+
variant: t,
|
|
95
99
|
listType: f = "text",
|
|
96
100
|
size: g,
|
|
97
101
|
children: w,
|
|
@@ -112,27 +116,27 @@ const V = ({ fileList: l, onRemove: u, onPreview: s }) => l.length ? /* @__PURE_
|
|
|
112
116
|
url: "",
|
|
113
117
|
title: ""
|
|
114
118
|
}), k = p.useRef([]), n = l ?? Y, m = p.useCallback(
|
|
115
|
-
(
|
|
116
|
-
const i = typeof
|
|
119
|
+
(r) => {
|
|
120
|
+
const i = typeof r == "function" ? r(n) : r;
|
|
117
121
|
u == null || u(i), Z(i), c == null || c(i);
|
|
118
122
|
},
|
|
119
123
|
[n, u, c]
|
|
120
124
|
), C = G ?? 500 * 1024 * 1024, A = Q ?? 3, $ = p.useCallback(
|
|
121
|
-
(
|
|
125
|
+
(r) => j && !j(r) ? (y.error("无权限上传此文件"), U.LIST_IGNORE) : r.size > C ? (y.error(`文件超出 ${_(C)} 限制`), U.LIST_IGNORE) : !0,
|
|
122
126
|
[C, j]
|
|
123
127
|
), D = p.useCallback(async () => {
|
|
124
128
|
if (!(!L || !n.length)) {
|
|
125
129
|
P(!0);
|
|
126
130
|
try {
|
|
127
|
-
const
|
|
128
|
-
for (;
|
|
129
|
-
const d =
|
|
131
|
+
const r = [...n], i = [];
|
|
132
|
+
for (; r.length; ) {
|
|
133
|
+
const d = r.shift();
|
|
130
134
|
if (!(d != null && d.originFileObj)) continue;
|
|
131
|
-
const
|
|
135
|
+
const rr = d.originFileObj;
|
|
132
136
|
i.push(
|
|
133
137
|
new Promise((H) => {
|
|
134
138
|
L({
|
|
135
|
-
file:
|
|
139
|
+
file: rr,
|
|
136
140
|
onSuccess: (K) => {
|
|
137
141
|
m(
|
|
138
142
|
(T) => T.map(
|
|
@@ -159,22 +163,22 @@ const V = ({ fileList: l, onRemove: u, onPreview: s }) => l.length ? /* @__PURE_
|
|
|
159
163
|
D,
|
|
160
164
|
M
|
|
161
165
|
]);
|
|
162
|
-
const E = p.useCallback((
|
|
163
|
-
const i =
|
|
166
|
+
const E = p.useCallback((r) => {
|
|
167
|
+
const i = pr(r);
|
|
164
168
|
if (!i) {
|
|
165
169
|
y.warning("暂无法预览该文件");
|
|
166
170
|
return;
|
|
167
171
|
}
|
|
168
|
-
i.startsWith("blob:") && k.current.push(i), W({ open: !0, url: i, title:
|
|
172
|
+
i.startsWith("blob:") && k.current.push(i), W({ open: !0, url: i, title: r.name || "预览" });
|
|
169
173
|
}, []);
|
|
170
174
|
p.useEffect(
|
|
171
175
|
() => () => {
|
|
172
|
-
k.current.forEach((
|
|
176
|
+
k.current.forEach((r) => URL.revokeObjectURL(r)), k.current = [];
|
|
173
177
|
},
|
|
174
178
|
[]
|
|
175
179
|
);
|
|
176
|
-
const v = (N == null ? void 0 : N()) ??
|
|
177
|
-
|
|
180
|
+
const v = (N == null ? void 0 : N()) ?? nr(R, G, x), S = !x || n.length < x, z = /* @__PURE__ */ e(
|
|
181
|
+
tr,
|
|
178
182
|
{
|
|
179
183
|
alt: F.title,
|
|
180
184
|
style: { display: "none" },
|
|
@@ -182,7 +186,7 @@ const V = ({ fileList: l, onRemove: u, onPreview: s }) => l.length ? /* @__PURE_
|
|
|
182
186
|
preview: {
|
|
183
187
|
visible: F.open,
|
|
184
188
|
src: F.url,
|
|
185
|
-
onVisibleChange: (
|
|
189
|
+
onVisibleChange: (r) => W((i) => ({ ...i, open: r }))
|
|
186
190
|
}
|
|
187
191
|
}
|
|
188
192
|
);
|
|
@@ -191,27 +195,27 @@ const V = ({ fileList: l, onRemove: u, onPreview: s }) => l.length ? /* @__PURE_
|
|
|
191
195
|
{
|
|
192
196
|
className: o("upload-picture-root", a["upload-picture-root"], s),
|
|
193
197
|
children: [
|
|
194
|
-
/* @__PURE__ */
|
|
198
|
+
/* @__PURE__ */ e(
|
|
195
199
|
U,
|
|
196
200
|
{
|
|
197
201
|
listType: "picture-card",
|
|
198
202
|
fileList: n,
|
|
199
203
|
beforeUpload: $,
|
|
200
|
-
onChange: (
|
|
204
|
+
onChange: (r) => m(r.fileList),
|
|
201
205
|
onPreview: E,
|
|
202
206
|
multiple: I,
|
|
203
207
|
directory: O,
|
|
204
208
|
accept: R,
|
|
205
209
|
showUploadList: { showPreviewIcon: !0, showRemoveIcon: !0 },
|
|
206
|
-
customRequest: ({ onSuccess:
|
|
210
|
+
customRequest: ({ onSuccess: r }) => r == null ? void 0 : r({}),
|
|
207
211
|
className: o("upload-picture-card", a["upload-picture-card"]),
|
|
208
212
|
children: S ? /* @__PURE__ */ b(
|
|
209
213
|
"div",
|
|
210
214
|
{
|
|
211
215
|
className: o("upload-picture-trigger", a["upload-picture-trigger"]),
|
|
212
216
|
children: [
|
|
213
|
-
/* @__PURE__ */
|
|
214
|
-
/* @__PURE__ */
|
|
217
|
+
/* @__PURE__ */ e(er, { size: 20 }),
|
|
218
|
+
/* @__PURE__ */ e(
|
|
215
219
|
"div",
|
|
216
220
|
{
|
|
217
221
|
className: o(
|
|
@@ -226,67 +230,67 @@ const V = ({ fileList: l, onRemove: u, onPreview: s }) => l.length ? /* @__PURE_
|
|
|
226
230
|
) : null
|
|
227
231
|
}
|
|
228
232
|
),
|
|
229
|
-
v ? /* @__PURE__ */
|
|
233
|
+
v ? /* @__PURE__ */ e("div", { className: o("upload-list", a["upload-list"]), children: v }) : null,
|
|
230
234
|
z
|
|
231
235
|
]
|
|
232
236
|
}
|
|
233
|
-
) :
|
|
237
|
+
) : t === "panel" ? /* @__PURE__ */ b("div", { className: s, children: [
|
|
234
238
|
/* @__PURE__ */ b(
|
|
235
239
|
U.Dragger,
|
|
236
240
|
{
|
|
237
241
|
fileList: n,
|
|
238
242
|
beforeUpload: $,
|
|
239
|
-
onChange: (
|
|
243
|
+
onChange: (r) => m(r.fileList),
|
|
240
244
|
multiple: I,
|
|
241
245
|
directory: O,
|
|
242
246
|
accept: R,
|
|
243
247
|
showUploadList: !1,
|
|
244
|
-
customRequest: ({ onSuccess:
|
|
248
|
+
customRequest: ({ onSuccess: r }) => r == null ? void 0 : r({}),
|
|
245
249
|
children: [
|
|
246
|
-
/* @__PURE__ */
|
|
247
|
-
/* @__PURE__ */
|
|
248
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ e("p", { className: o("upload-drag-icon", a["upload-drag-icon"]), children: /* @__PURE__ */ e(lr, {}) }),
|
|
251
|
+
/* @__PURE__ */ e("p", { className: "ant-upload-text", children: "点击或拖拽文件到此区域上传" }),
|
|
252
|
+
/* @__PURE__ */ e("p", { children: v })
|
|
249
253
|
]
|
|
250
254
|
}
|
|
251
255
|
),
|
|
252
|
-
q && /* @__PURE__ */
|
|
256
|
+
q && /* @__PURE__ */ e(
|
|
253
257
|
V,
|
|
254
258
|
{
|
|
255
259
|
fileList: n,
|
|
256
|
-
onRemove: (
|
|
260
|
+
onRemove: (r) => m((i) => i.filter((d) => d.uid !== r)),
|
|
257
261
|
onPreview: E
|
|
258
262
|
}
|
|
259
263
|
),
|
|
260
264
|
z
|
|
261
265
|
] }) : /* @__PURE__ */ b("div", { className: s, children: [
|
|
262
|
-
/* @__PURE__ */
|
|
266
|
+
/* @__PURE__ */ e(
|
|
263
267
|
U,
|
|
264
268
|
{
|
|
265
269
|
fileList: n,
|
|
266
270
|
beforeUpload: $,
|
|
267
|
-
onChange: (
|
|
271
|
+
onChange: (r) => m(r.fileList),
|
|
268
272
|
multiple: I,
|
|
269
273
|
directory: O,
|
|
270
274
|
accept: R,
|
|
271
275
|
showUploadList: !1,
|
|
272
|
-
customRequest: ({ onSuccess:
|
|
273
|
-
children: w ?? /* @__PURE__ */
|
|
276
|
+
customRequest: ({ onSuccess: r }) => r == null ? void 0 : r({}),
|
|
277
|
+
children: w ?? /* @__PURE__ */ e(
|
|
274
278
|
B,
|
|
275
279
|
{
|
|
276
280
|
size: g,
|
|
277
|
-
icon: /* @__PURE__ */
|
|
281
|
+
icon: /* @__PURE__ */ e(or, {}),
|
|
278
282
|
className: o("upload-toolbar", a["upload-toolbar"]),
|
|
279
283
|
children: "点击上传"
|
|
280
284
|
}
|
|
281
285
|
)
|
|
282
286
|
}
|
|
283
287
|
),
|
|
284
|
-
/* @__PURE__ */
|
|
285
|
-
q && /* @__PURE__ */
|
|
288
|
+
/* @__PURE__ */ e("div", { className: o("upload-list", a["upload-list"]), children: v }),
|
|
289
|
+
q && /* @__PURE__ */ e(
|
|
286
290
|
V,
|
|
287
291
|
{
|
|
288
292
|
fileList: n,
|
|
289
|
-
onRemove: (
|
|
293
|
+
onRemove: (r) => m((i) => i.filter((d) => d.uid !== r)),
|
|
290
294
|
onPreview: E
|
|
291
295
|
}
|
|
292
296
|
),
|
|
@@ -294,8 +298,8 @@ const V = ({ fileList: l, onRemove: u, onPreview: s }) => l.length ? /* @__PURE_
|
|
|
294
298
|
] });
|
|
295
299
|
}
|
|
296
300
|
);
|
|
297
|
-
|
|
301
|
+
cr.displayName = "CommonUpload";
|
|
298
302
|
export {
|
|
299
|
-
|
|
303
|
+
cr as default
|
|
300
304
|
};
|
|
301
305
|
//# sourceMappingURL=index.js.map
|