diff --git a/dist.zip b/dist.zip deleted file mode 100644 index abee3cf..0000000 Binary files a/dist.zip and /dev/null differ diff --git a/package.json b/package.json index 23709c8..7dbb8ff 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,14 @@ }, "dependencies": { "@uiw/react-md-editor": "^4.0.8", + "antd": "^5.27.3", "axios": "^1.6.2", + "canvg": "^4.0.3", "jspdf": "^3.0.2", "lucide-react": "^0.294.0", + "markmap-common": "^0.18.9", + "markmap-lib": "^0.18.12", + "markmap-view": "^0.18.12", "react": "^19.1.0", "react-dom": "^19.1.0", "react-markdown": "^10.1.0", diff --git a/src/components/MeetingSummary.jsx b/src/components/MeetingSummary.jsx new file mode 100644 index 0000000..9876c07 --- /dev/null +++ b/src/components/MeetingSummary.jsx @@ -0,0 +1,242 @@ +import React from 'react'; +import { FileText, Download, Brain } from 'lucide-react'; +import ReactMarkdown from 'react-markdown'; +import remarkGfm from 'remark-gfm'; +import rehypeRaw from 'rehype-raw'; +import rehypeSanitize from 'rehype-sanitize'; + +const MeetingSummary = ({ + meeting, + summaryResult, + summaryHistory, + isCreator, + onOpenSummaryModal, + formatDateTime +}) => { + + const exportToPDF = async () => { + try { + // 检查是否有总结内容 + let summaryContent = summaryResult?.content || + meeting?.summary || + (summaryHistory.length > 0 ? summaryHistory[0].content : null); + + if (!summaryContent) { + alert('暂无会议总结内容,请先生成AI总结。'); + return; + } + + // 先渲染Markdown内容 + const tempDiv = document.createElement('div'); + tempDiv.style.display = 'none'; + document.body.appendChild(tempDiv); + + const ReactMarkdown = (await import('react-markdown')).default; + const { createRoot } = await import('react-dom/client'); + + const root = createRoot(tempDiv); + + // 渲染Markdown内容并获取HTML + await new Promise((resolve) => { + root.render( + React.createElement(ReactMarkdown, { + remarkPlugins: [remarkGfm], + rehypePlugins: [rehypeRaw, rehypeSanitize], + children: summaryContent + }) + ); + setTimeout(resolve, 100); + }); + + const renderedHTML = tempDiv.innerHTML; + + // 创建会议信息 + const meetingTime = formatDateTime(meeting.meeting_time); + const attendeesList = meeting.attendees.map(attendee => + typeof attendee === 'string' ? attendee : attendee.caption + ).join('、'); + + // 创建一个隐藏的iframe用于打印 + const printFrame = document.createElement('iframe'); + printFrame.style.position = 'fixed'; + printFrame.style.width = '0'; + printFrame.style.height = '0'; + printFrame.style.border = 'none'; + printFrame.style.left = '-9999px'; + document.body.appendChild(printFrame); + + // 使用Blob和URL来确保编码正确 + const htmlContent = ` + + + + +${meeting.title || '会议总结'} + + + +

${meeting.title || '会议总结'}

+
+

会议信息

+

会议时间:${meetingTime}

+

创建人:${meeting.creator_username}

+

参会人数:${meeting.attendees.length}人

+

参会人员:${attendeesList}

+
+
+

会议摘要

+${renderedHTML} +
+ + +`; + + // 使用Blob创建URL以确保正确的编码 + const blob = new Blob([htmlContent], { type: 'text/html; charset=UTF-8' }); + const url = URL.createObjectURL(blob); + + // 设置iframe的src为blob URL + printFrame.src = url; + + // 等待iframe加载完成 + printFrame.onload = () => { + setTimeout(() => { + // 执行打印 + printFrame.contentWindow.focus(); + printFrame.contentWindow.print(); + + // 清理资源 + setTimeout(() => { + URL.revokeObjectURL(url); + root.unmount(); + document.body.removeChild(tempDiv); + document.body.removeChild(printFrame); + }, 2000); + }, 500); + }; + + } catch (error) { + console.error('PDF导出失败:', error); + alert('PDF导出失败,请重试。'); + } + }; + + return ( +
+
+

摘要内容

+ {meeting?.summary && ( + + )} +
+
+ {meeting?.summary ? ( +
+ + {meeting.summary} + +
+ ) : ( +
+
+ +

暂无会议总结

+

该会议尚未生成总结内容

+ {isCreator && ( + + )} +
+
+ )} +
+
+ ); +}; + +export default MeetingSummary; \ No newline at end of file diff --git a/src/components/MindMap.jsx b/src/components/MindMap.jsx new file mode 100644 index 0000000..22c4b95 --- /dev/null +++ b/src/components/MindMap.jsx @@ -0,0 +1,241 @@ +import React, { useState, useEffect, useRef } from 'react'; +import { Transformer } from 'markmap-lib'; +import { Markmap } from 'markmap-view'; +import apiClient from '../utils/apiClient'; +import { API_ENDPOINTS } from '../config/api'; +import { Brain, Download, Loader } from 'lucide-react'; + +const MindMap = ({ meetingId, meetingTitle }) => { + const [markdown, setMarkdown] = useState(''); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(''); + const [hasSummary, setHasSummary] = useState(false); + + const svgRef = useRef(null); + const markmapRef = useRef(null); + + useEffect(() => { + const fetchSummary = async () => { + try { + setLoading(true); + const endpoint = API_ENDPOINTS.MEETINGS.DETAIL(meetingId); + const response = await apiClient.get(endpoint); + const summary = response.data?.summary; + + if (summary) { + setMarkdown(summary); + setHasSummary(true); + } else { + setMarkdown('# 暂无会议总结\n\n请先生成AI总结,才能查看思维导图。'); + setHasSummary(false); + } + } catch (err) { + console.error('Failed to fetch summary for mind map:', err); + setError('无法加载会议总结内容。'); + setMarkdown('# 加载失败\n\n无法加载会议总结内容,请稍后重试。'); + setHasSummary(false); + } finally { + setLoading(false); + } + }; + + if (meetingId) { + fetchSummary(); + } + }, [meetingId]); + + useEffect(() => { + if (loading || !markdown || !svgRef.current) return; + + const transformer = new Transformer(); + const { root } = transformer.transform(markdown); + + if (markmapRef.current) { + markmapRef.current.setData(root); + } else { + markmapRef.current = Markmap.create(svgRef.current, null, root); + } + + markmapRef.current.fit(); + + }, [markdown, loading]); + + const handleExportPDF = async () => { + if (!svgRef.current) { + alert('思维导图尚未渲染,无法导出。'); + return; + } + + try { + // 获取SVG元素 + const svgElement = svgRef.current; + const svgHTML = svgElement.outerHTML; + + if (!svgHTML.trim()) { + alert('思维导图内容为空,无法导出。'); + return; + } + + // 获取SVG的尺寸 + const svgRect = svgElement.getBoundingClientRect(); + const svgWidth = svgRect.width || 800; + const svgHeight = svgRect.height || 600; + + // 创建一个隐藏的iframe用于打印 + const printFrame = document.createElement('iframe'); + printFrame.style.position = 'fixed'; + printFrame.style.width = '0'; + printFrame.style.height = '0'; + printFrame.style.border = 'none'; + printFrame.style.left = '-9999px'; + document.body.appendChild(printFrame); + + // 创建HTML内容 + const htmlContent = ` + + + + +${meetingTitle || '会议思维导图'} + + + +

${meetingTitle || '会议思维导图'}

+
+${svgHTML} +
+ + +`; + + // 使用Blob创建URL以确保正确的编码 + const blob = new Blob([htmlContent], { type: 'text/html; charset=UTF-8' }); + const url = URL.createObjectURL(blob); + + // 设置iframe的src为blob URL + printFrame.src = url; + + // 等待iframe加载完成 + printFrame.onload = () => { + setTimeout(() => { + try { + // 执行打印 + printFrame.contentWindow.focus(); + printFrame.contentWindow.print(); + } catch(e) { + console.error("Print failed:", e); + alert("导出PDF失败,您的浏览器可能阻止了打印操作。"); + } + + // 清理资源 + setTimeout(() => { + URL.revokeObjectURL(url); + document.body.removeChild(printFrame); + }, 2000); + }, 500); + }; + + } catch (error) { + console.error('PDF导出失败:', error); + alert('PDF导出失败,请重试。'); + } + }; + + if (loading) { + return ( +
+ +

正在加载思维导图...

+
+ ); + } + + return ( +
+
+

思维导图

+ {hasSummary && ( + + )} +
+
+ +
+
+ ); +}; + +export default MindMap; diff --git a/src/main.jsx b/src/main.jsx index b9a1a6d..d6edd96 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -1,10 +1,13 @@ -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' -import './index.css' -import App from './App.jsx' +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; +import { StyleProvider } from '@ant-design/cssinjs'; +import './index.css'; +import App from './App.jsx'; createRoot(document.getElementById('root')).render( - + + + , -) +); \ No newline at end of file diff --git a/src/pages/AdminManagement.css b/src/pages/AdminManagement.css index cf4d98b..7451047 100644 --- a/src/pages/AdminManagement.css +++ b/src/pages/AdminManagement.css @@ -59,7 +59,7 @@ overflow: hidden; } -/* Tabs */ +/* Old Tabs styles - can be removed or kept for reference */ .tabs { display: flex; border-bottom: 1px solid #e2e8f0; @@ -109,6 +109,41 @@ min-height: 60vh; } +/* New AntD Tabs Styles */ +.admin-tabs .ant-tabs-nav { + padding: 0 2rem; + margin-bottom: 0 !important; + border-bottom: 1px solid #e2e8f0; +} + +.admin-tabs .ant-tabs-tab { + font-size: 1rem; + color: #475569; + padding: 16px 4px; + margin: 0 16px; +} + +.admin-tabs .ant-tabs-tab .ant-tabs-tab-btn { + display: flex; + align-items: center; + gap: 8px; + font-weight: 500; +} + +.admin-tabs .ant-tabs-tab-active .ant-tabs-tab-btn { + color: #667eea; +} + +.admin-tabs .ant-tabs-ink-bar { + background: #667eea; + height: 3px; +} + +.admin-tabs .ant-tabs-content-holder { + padding: 2rem; + min-height: 60vh; +} + /* Responsive Design */ @media (max-width: 768px) { .admin-content { @@ -124,7 +159,11 @@ font-size: 0.9rem; } - .tab-content { + .tab-content, .admin-tabs .ant-tabs-content-holder { padding: 1rem; } -} + + .admin-tabs .ant-tabs-nav { + padding: 0 1rem; + } +} \ No newline at end of file diff --git a/src/pages/AdminManagement.jsx b/src/pages/AdminManagement.jsx index 81e6d3b..e2f51fb 100644 --- a/src/pages/AdminManagement.jsx +++ b/src/pages/AdminManagement.jsx @@ -1,12 +1,14 @@ -import React, { useState } from 'react'; +import React from 'react'; import { MessageSquare, Settings, Users } from 'lucide-react'; import { useNavigate } from 'react-router-dom'; +import { Tabs } from 'antd'; import UserManagement from '../components/admin/UserManagement'; import SystemConfiguration from '../components/admin/SystemConfiguration'; import './AdminManagement.css'; +const { TabPane } = Tabs; + const AdminManagement = () => { - const [activeTab, setActiveTab] = useState('userManagement'); const navigate = useNavigate(); const handleLogoClick = () => { @@ -26,30 +28,25 @@ const AdminManagement = () => {
-
- - -
-
- {activeTab === 'userManagement' && } - {activeTab === 'systemConfiguration' && } -
+ + +
); }; + export default AdminManagement; \ No newline at end of file diff --git a/src/pages/MeetingDetails.css b/src/pages/MeetingDetails.css index 9d45e8a..55e43b5 100644 --- a/src/pages/MeetingDetails.css +++ b/src/pages/MeetingDetails.css @@ -1817,3 +1817,80 @@ transform: none; box-shadow: none; } + +/* New styles for Tabs and MindMap */ +.summary-tabs-section .ant-tabs-nav { + margin-bottom: 1.5rem !important; +} + +.summary-tabs-section .ant-tabs-tab { + font-size: 1rem; + color: #475569; + padding: 12px 16px; +} + +.summary-tabs-section .ant-tabs-tab .ant-tabs-tab-btn { + display: flex; + align-items: center; + gap: 8px; +} + +.summary-tabs-section .ant-tabs-tab-active .ant-tabs-tab-btn { + color: #667eea; +} + +.summary-tabs-section .ant-tabs-ink-bar { + background: #667eea; + height: 3px; +} + +.mindmap-container { + padding: 1rem; +} + +.mindmap-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; +} + +.mindmap-header h3 { + margin: 0; + color: #334155; + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 1.25rem; +} + +.markmap-render-area { + height: 600px; + width: 100%; + border: 1px solid #e2e8f0; + border-radius: 8px; + background: #f8fafc; +} + +.markmap-render-area svg { + width: 100%; + height: 100%; +} + +.mindmap-loading { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 600px; + color: #64748b; +} + +.mindmap-loading .animate-spin { + animation: spin 1s linear infinite; +} + +@keyframes spin { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +} \ No newline at end of file diff --git a/src/pages/MeetingDetails.jsx b/src/pages/MeetingDetails.jsx index c65bf0f..4a8886d 100644 --- a/src/pages/MeetingDetails.jsx +++ b/src/pages/MeetingDetails.jsx @@ -7,8 +7,13 @@ import remarkGfm from 'remark-gfm'; import rehypeRaw from 'rehype-raw'; import rehypeSanitize from 'rehype-sanitize'; import { buildApiUrl, API_ENDPOINTS, API_BASE_URL } from '../config/api'; +import MindMap from '../components/MindMap'; +import MeetingSummary from '../components/MeetingSummary'; +import { Tabs } from 'antd'; import './MeetingDetails.css'; +const { TabPane } = Tabs; + const MeetingDetails = ({ user }) => { const { meeting_id } = useParams(); const navigate = useNavigate(); @@ -24,6 +29,7 @@ const MeetingDetails = ({ user }) => { const [audioUrl, setAudioUrl] = useState(null); const [audioFileName, setAudioFileName] = useState(null); const [showDeleteConfirm, setShowDeleteConfirm] = useState(false); + const [showSummaryError, setShowSummaryError] = useState(false); const [showSpeakerEdit, setShowSpeakerEdit] = useState(false); const [editingSpeakers, setEditingSpeakers] = useState({}); const [speakerList, setSpeakerList] = useState([]); @@ -547,8 +553,6 @@ const MeetingDetails = ({ user }) => { summary: response.data.summary })); - console.log('会议摘要已更新,无loading状态'); - } catch (error) { console.error('刷新会议摘要失败:', error); } @@ -625,9 +629,14 @@ const MeetingDetails = ({ user }) => { } catch (err) { console.error('Error starting summary generation:', err); - setError('启动AI总结失败,请重试'); + // Check for detailed error message from backend + const detail = err.response?.data?.detail; + const errorMessage = detail || '启动AI总结失败,请重试。'; + + setError(errorMessage); // Set the more specific error + setSummaryTaskMessage(`生成失败:${errorMessage}`); // Also show it in the modal + setSummaryLoading(false); - setSummaryTaskMessage(''); setSummaryTaskProgress(0); } }; @@ -699,6 +708,12 @@ const MeetingDetails = ({ user }) => { }; const openSummaryModal = async () => { + // Frontend check before opening the modal + if (!transcriptionStatus || transcriptionStatus.status !== 'completed') { + setShowSummaryError(true); + return; // Prevent modal from opening + } + setShowSummaryModal(true); setUserPrompt(''); setSummaryResult(null); @@ -712,186 +727,7 @@ const MeetingDetails = ({ user }) => { await refreshMeetingSummary(); } }; - - const exportToPDF = async () => { - try { - // 检查是否有总结内容 - let summaryContent = summaryResult?.content || - meeting?.summary || - (summaryHistory.length > 0 ? summaryHistory[0].content : null); - - if (!summaryContent) { - alert('暂无会议总结内容,请先生成AI总结。'); - return; - } - - // 先渲染Markdown内容 - const tempDiv = document.createElement('div'); - tempDiv.style.display = 'none'; - document.body.appendChild(tempDiv); - - const ReactMarkdown = (await import('react-markdown')).default; - const { createRoot } = await import('react-dom/client'); - - const root = createRoot(tempDiv); - - // 渲染Markdown内容并获取HTML - await new Promise((resolve) => { - root.render( - React.createElement(ReactMarkdown, { - remarkPlugins: [remarkGfm], - rehypePlugins: [rehypeRaw, rehypeSanitize], - children: summaryContent - }) - ); - setTimeout(resolve, 100); - }); - - const renderedHTML = tempDiv.innerHTML; - - // 创建会议信息 - const meetingTime = formatDateTime(meeting.meeting_time); - const attendeesList = meeting.attendees.map(attendee => - typeof attendee === 'string' ? attendee : attendee.caption - ).join('、'); - - // 创建一个隐藏的iframe用于打印 - const printFrame = document.createElement('iframe'); - printFrame.style.position = 'fixed'; - printFrame.style.width = '0'; - printFrame.style.height = '0'; - printFrame.style.border = 'none'; - printFrame.style.left = '-9999px'; - document.body.appendChild(printFrame); - - const printDocument = printFrame.contentWindow.document; - - // 使用Blob和URL来确保编码正确 - const htmlContent = ` - - - - -${meeting.title || '会议总结'} - - - -

${meeting.title || '会议总结'}

-
-

会议信息

-

会议时间:${meetingTime}

-

创建人:${meeting.creator_username}

-

参会人数:${meeting.attendees.length}人

-

参会人员:${attendeesList}

-
-
-

会议摘要

-${renderedHTML} -
- - -`; - - // 使用Blob创建URL以确保正确的编码 - const blob = new Blob([htmlContent], { type: 'text/html; charset=UTF-8' }); - const url = URL.createObjectURL(blob); - - // 设置iframe的src为blob URL - printFrame.src = url; - - // 等待iframe加载完成 - printFrame.onload = () => { - setTimeout(() => { - // 执行打印 - printFrame.contentWindow.focus(); - printFrame.contentWindow.print(); - - // 清理资源 - setTimeout(() => { - URL.revokeObjectURL(url); - root.unmount(); - document.body.removeChild(tempDiv); - document.body.removeChild(printFrame); - }, 2000); - }, 500); - }; - - } catch (error) { - console.error('PDF导出失败:', error); - alert('PDF导出失败,请重试。'); - } - }; - + const isCreator = meeting && user && String(meeting.creator_id) === String(user.user_id); if (loading) { @@ -1110,49 +946,22 @@ ${renderedHTML} )} -
-
-

会议摘要

- {meeting?.summary && ( - - )} -
-
- {meeting?.summary ? ( -
- - {meeting.summary} - -
- ) : ( -
-
- -

暂无会议总结

-

该会议尚未生成总结内容

- {isCreator && ( - - )} -
-
- )} -
+
+ + 会议总结} key="1"> + + + 会议脑图} key="2"> + + +
@@ -1265,7 +1074,25 @@ ${renderedHTML} )} - + + {/* Summary Error Modal */} + {showSummaryError && ( +
setShowSummaryError(false)}> +
e.stopPropagation()}> +

操作无法进行

+

会议转录尚未完成或处理失败,请在转录成功后再生成AI总结。

+
+ +
+
+
+ )} + {/* Speaker Tags Edit Modal */} {showSpeakerEdit && (
setShowSpeakerEdit(false)}> @@ -1470,14 +1297,6 @@ ${renderedHTML}

最新生成的总结

-
= 2.1.2 < 3.0.0" + ignore@^5.2.0: version "5.3.2" resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz" @@ -1592,6 +2225,11 @@ inline-style-parser@0.2.4: resolved "https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz" integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + iobuffer@^5.3.2: version "5.4.0" resolved "https://registry.npmmirror.com/iobuffer/-/iobuffer-5.4.0.tgz#f85dff957fd0579257472f0a4cfe5ed3430e63e1" @@ -1674,6 +2312,13 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" + integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== + dependencies: + string-convert "^0.2.0" + json5@^2.2.3: version "2.2.3" resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz" @@ -1693,6 +2338,13 @@ jspdf@^3.0.2: dompurify "^3.2.4" html2canvas "^1.0.0-rc.5" +katex@^0.16.4, katex@^0.16.8: + version "0.16.22" + resolved "https://registry.npmmirror.com/katex/-/katex-0.16.22.tgz#d2b3d66464b1e6d69e6463b28a86ced5a02c5ccd" + integrity sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg== + dependencies: + commander "^8.3.0" + keyv@^4.5.4: version "4.5.4" resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz" @@ -1708,6 +2360,13 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz" @@ -1737,11 +2396,87 @@ lucide-react@^0.294.0: resolved "https://registry.npmmirror.com/lucide-react/-/lucide-react-0.294.0.tgz" integrity sha512-V7o0/VECSGbLHn3/1O67FUgBwWB+hmzshrgDVRJQhMh8uj5D3HBuIvhuAmQTtlupILSplwIZg5FTc4tTKMA2SA== +markdown-it-ins@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/markdown-it-ins/-/markdown-it-ins-4.0.0.tgz#f4c805e6ba911f12793c0f99af3ebfda8f19021b" + integrity sha512-sWbjK2DprrkINE4oYDhHdCijGT+MIDhEupjSHLXe5UXeVr5qmVxs/nTUVtgi0Oh/qtF+QKV0tNWDhQBEPxiMew== + +markdown-it-mark@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/markdown-it-mark/-/markdown-it-mark-4.0.0.tgz#c19cbc87d9cb9fd1a495e8fe31b740b6d9ebf8c8" + integrity sha512-YLhzaOsU9THO/cal0lUjfMjrqSMPjjyjChYM7oyj4DnyaXEzA8gnW6cVJeyCrCVeyesrY2PlEdUYJSPFYL4Nkg== + +markdown-it-sub@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/markdown-it-sub/-/markdown-it-sub-2.0.0.tgz#10f6c7bbf2faacf71ae1a64c75009c40ef9b2c94" + integrity sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA== + +markdown-it-sup@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/markdown-it-sup/-/markdown-it-sup-2.0.0.tgz#683b9390929f3024fcd5291799c466ce3d367f44" + integrity sha512-5VgmdKlkBd8sgXuoDoxMpiU+BiEt3I49GItBzzw7Mxq9CxvnhE/k09HFli09zgfFDRixDQDfDxi0mgBCXtaTvA== + +markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + markdown-table@^3.0.0: version "3.0.4" resolved "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.4.tgz" integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== +markmap-common@^0.18.9: + version "0.18.9" + resolved "https://registry.npmmirror.com/markmap-common/-/markmap-common-0.18.9.tgz#c07328106008603b59080c67474bd491a52b1220" + integrity sha512-MV2HQO7IGIm3jWEJXSG8vmdpqf4WIDXcEyAEN52lrWR1qD53Zg5l81JwjXoZ2l0rY5mofKYqUFlmdM2fqTGMVg== + dependencies: + "@babel/runtime" "^7.22.6" + "@gera2ld/jsx-dom" "^2.2.2" + npm2url "^0.2.4" + +markmap-html-parser@0.18.11: + version "0.18.11" + resolved "https://registry.npmmirror.com/markmap-html-parser/-/markmap-html-parser-0.18.11.tgz#47743edc10dad1a25e9983e913249cd8007ed7e2" + integrity sha512-+kC5C4sCGntGUhGvTa5VIb5rtM75cSy/VCy3tzZoNAcn2qZGdgYvljN0WvjsOzrEzp+V6XKgwzO0u2TdzNAiOg== + dependencies: + "@babel/runtime" "^7.22.6" + cheerio "1.0.0" + +markmap-lib@^0.18.12: + version "0.18.12" + resolved "https://registry.npmmirror.com/markmap-lib/-/markmap-lib-0.18.12.tgz#db02580d816ce7e085f871e71e5d230071c14cc3" + integrity sha512-WCA4OT+b71jYg0e4PS/6NRKqihod5OpPsvw1jEGHQwCtqQrY/yXXCeRyuL3axOS5cMy5pV8BSl4CwKfJU1LxJg== + dependencies: + "@babel/runtime" "^7.22.6" + "@vscode/markdown-it-katex" "^1.1.0" + highlight.js "^11.8.0" + katex "^0.16.8" + markdown-it "^14.1.0" + markdown-it-ins "^4.0.0" + markdown-it-mark "^4.0.0" + markdown-it-sub "^2.0.0" + markdown-it-sup "^2.0.0" + markmap-html-parser "0.18.11" + markmap-view "0.18.12" + prismjs "^1.29.0" + yaml "^2.5.1" + +markmap-view@0.18.12, markmap-view@^0.18.12: + version "0.18.12" + resolved "https://registry.npmmirror.com/markmap-view/-/markmap-view-0.18.12.tgz#7f37988a99544db6432de8acabe5d9097a71a88f" + integrity sha512-D8bzT1YwIC/8rkbwm6WzigVUrpOAGv7ioEGTi1Lj+Oo8gO5sAm6hhli27jvTgUcZ9TwBeIWZ+dSUP+AupYUGlQ== + dependencies: + "@babel/runtime" "^7.22.6" + d3 "^7.8.5" + math-intrinsics@^1.1.0: version "1.1.0" resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz" @@ -1927,6 +2662,11 @@ mdast-util-to-string@^4.0.0: dependencies: "@types/mdast" "^4.0.0" +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + micromark-core-commonmark@^2.0.0: version "2.0.3" resolved "https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz" @@ -2239,7 +2979,12 @@ node-releases@^2.0.19: resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz" integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== -nth-check@^2.0.0: +npm2url@^0.2.4: + version "0.2.4" + resolved "https://registry.npmmirror.com/npm2url/-/npm2url-0.2.4.tgz#50a4fa97eb1a39882cb598a1e92775a1f27a7910" + integrity sha512-arzGp/hQz0Ey+ZGhF64XVH7Xqwd+1Q/po5uGiBbzph8ebX6T0uvt3N7c1nBHQNsQVykQgHhqoRTX7JFcHecGuw== + +nth-check@^2.0.0, nth-check@^2.0.1: version "2.1.1" resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== @@ -2302,7 +3047,22 @@ parse-numeric-range@^1.3.0: resolved "https://registry.npmmirror.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz" integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== -parse5@^7.0.0: +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.1.0" + resolved "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b" + integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== + dependencies: + domhandler "^5.0.3" + parse5 "^7.0.0" + +parse5-parser-stream@^7.1.2: + version "7.1.2" + resolved "https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz#d7c20eadc37968d272e2c02660fff92dd27e60e1" + integrity sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow== + dependencies: + parse5 "^7.0.0" + +parse5@^7.0.0, parse5@^7.1.2: version "7.3.0" resolved "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz" integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== @@ -2348,6 +3108,11 @@ prelude-ls@^1.2.1: resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prismjs@^1.29.0: + version "1.30.0" + resolved "https://registry.npmmirror.com/prismjs/-/prismjs-1.30.0.tgz#d9709969d9d4e16403f6f348c63553b19f0975a9" + integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== + property-information@^6.0.0: version "6.5.0" resolved "https://registry.npmmirror.com/property-information/-/property-information-6.5.0.tgz" @@ -2363,6 +3128,11 @@ proxy-from-env@^1.1.0: resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + punycode@^2.1.0: version "2.3.1" resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz" @@ -2375,6 +3145,357 @@ raf@^3.4.1: dependencies: performance-now "^2.1.0" +rc-cascader@~3.34.0: + version "3.34.0" + resolved "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.34.0.tgz#56f936ab6b1229bab7d558701ce9b9e96536582c" + integrity sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag== + dependencies: + "@babel/runtime" "^7.25.7" + classnames "^2.3.1" + rc-select "~14.16.2" + rc-tree "~5.13.0" + rc-util "^5.43.0" + +rc-checkbox@~3.5.0: + version "3.5.0" + resolved "https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-3.5.0.tgz#3ae2441e3a321774d390f76539e706864fcf5ff0" + integrity sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.3.2" + rc-util "^5.25.2" + +rc-collapse@~3.9.0: + version "3.9.0" + resolved "https://registry.npmmirror.com/rc-collapse/-/rc-collapse-3.9.0.tgz#972404ce7724e1c9d1d2476543e1175404a36806" + integrity sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.3.4" + rc-util "^5.27.0" + +rc-dialog@~9.6.0: + version "9.6.0" + resolved "https://registry.npmmirror.com/rc-dialog/-/rc-dialog-9.6.0.tgz#dc7a255c6ad1cb56021c3a61c7de86ee88c7c371" + integrity sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/portal" "^1.0.0-8" + classnames "^2.2.6" + rc-motion "^2.3.0" + rc-util "^5.21.0" + +rc-drawer@~7.3.0: + version "7.3.0" + resolved "https://registry.npmmirror.com/rc-drawer/-/rc-drawer-7.3.0.tgz#1bb5fe5f9da38b6a2b2a7dffc9fcb647252a328f" + integrity sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg== + dependencies: + "@babel/runtime" "^7.23.9" + "@rc-component/portal" "^1.1.1" + classnames "^2.2.6" + rc-motion "^2.6.1" + rc-util "^5.38.1" + +rc-dropdown@~4.2.0, rc-dropdown@~4.2.1: + version "4.2.1" + resolved "https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.2.1.tgz#44729eb2a4272e0353d31ac060da21e606accb1c" + integrity sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA== + dependencies: + "@babel/runtime" "^7.18.3" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.6" + rc-util "^5.44.1" + +rc-field-form@~2.7.0: + version "2.7.0" + resolved "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-2.7.0.tgz#22413e793f35bfc1f35b0ec462774d7277f5a399" + integrity sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA== + dependencies: + "@babel/runtime" "^7.18.0" + "@rc-component/async-validator" "^5.0.3" + rc-util "^5.32.2" + +rc-image@~7.12.0: + version "7.12.0" + resolved "https://registry.npmmirror.com/rc-image/-/rc-image-7.12.0.tgz#95e9314701e668217d113c1f29b4f01ac025cafe" + integrity sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q== + dependencies: + "@babel/runtime" "^7.11.2" + "@rc-component/portal" "^1.0.2" + classnames "^2.2.6" + rc-dialog "~9.6.0" + rc-motion "^2.6.2" + rc-util "^5.34.1" + +rc-input-number@~9.5.0: + version "9.5.0" + resolved "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-9.5.0.tgz#b47963d0f2cbd85ab2f1badfdc089a904c073f38" + integrity sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/mini-decimal" "^1.0.1" + classnames "^2.2.5" + rc-input "~1.8.0" + rc-util "^5.40.1" + +rc-input@~1.8.0: + version "1.8.0" + resolved "https://registry.npmmirror.com/rc-input/-/rc-input-1.8.0.tgz#d2f4404befebf2fbdc28390d5494c302f74ae974" + integrity sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.18.1" + +rc-mentions@~2.20.0: + version "2.20.0" + resolved "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.20.0.tgz#3bbeac0352b02e0ce3e1244adb48701bb6903bf7" + integrity sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ== + dependencies: + "@babel/runtime" "^7.22.5" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.6" + rc-input "~1.8.0" + rc-menu "~9.16.0" + rc-textarea "~1.10.0" + rc-util "^5.34.1" + +rc-menu@~9.16.0, rc-menu@~9.16.1: + version "9.16.1" + resolved "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.16.1.tgz#9df1168e41d87dc7164c582173e1a1d32011899f" + integrity sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^2.0.0" + classnames "2.x" + rc-motion "^2.4.3" + rc-overflow "^1.3.1" + rc-util "^5.27.0" + +rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.6.1, rc-motion@^2.6.2, rc-motion@^2.9.0, rc-motion@^2.9.5: + version "2.9.5" + resolved "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.9.5.tgz#12c6ead4fd355f94f00de9bb4f15df576d677e0c" + integrity sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.44.0" + +rc-notification@~5.6.4: + version "5.6.4" + resolved "https://registry.npmmirror.com/rc-notification/-/rc-notification-5.6.4.tgz#ea89c39c13cd517fdfd97fe63f03376fabb78544" + integrity sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.9.0" + rc-util "^5.20.1" + +rc-overflow@^1.3.1, rc-overflow@^1.3.2: + version "1.4.1" + resolved "https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.4.1.tgz#e1bcf0375979c24cffa2d87bf83a19ded5fcdf45" + integrity sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-resize-observer "^1.0.0" + rc-util "^5.37.0" + +rc-pagination@~5.1.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-5.1.0.tgz#a6e63a2c5db29e62f991282eb18a2d3ee725ba8b" + integrity sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.3.2" + rc-util "^5.38.0" + +rc-picker@~4.11.3: + version "4.11.3" + resolved "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.11.3.tgz#7e7e3ad83aa461c284b8391c697492d1c34d2cb8" + integrity sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg== + dependencies: + "@babel/runtime" "^7.24.7" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.1" + rc-overflow "^1.3.2" + rc-resize-observer "^1.4.0" + rc-util "^5.43.0" + +rc-progress@~4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/rc-progress/-/rc-progress-4.0.0.tgz#5382147d9add33d3a5fbd264001373df6440e126" + integrity sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.6" + rc-util "^5.16.1" + +rc-rate@~2.13.1: + version "2.13.1" + resolved "https://registry.npmmirror.com/rc-rate/-/rc-rate-2.13.1.tgz#29af7a3d4768362e9d4388f955a8b6389526b7fd" + integrity sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.0.1" + +rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.3.1, rc-resize-observer@^1.4.0, rc-resize-observer@^1.4.3: + version "1.4.3" + resolved "https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz#4fd41fa561ba51362b5155a07c35d7c89a1ea569" + integrity sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ== + dependencies: + "@babel/runtime" "^7.20.7" + classnames "^2.2.1" + rc-util "^5.44.1" + resize-observer-polyfill "^1.5.1" + +rc-segmented@~2.7.0: + version "2.7.0" + resolved "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.7.0.tgz#f56c2044abf8f03958b3a9a9d32987f10dcc4fc4" + integrity sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-motion "^2.4.4" + rc-util "^5.17.0" + +rc-select@~14.16.2, rc-select@~14.16.8: + version "14.16.8" + resolved "https://registry.npmmirror.com/rc-select/-/rc-select-14.16.8.tgz#78e6782f1ccc1f03d9003bc3effa4ed609d29a97" + integrity sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^2.1.1" + classnames "2.x" + rc-motion "^2.0.1" + rc-overflow "^1.3.1" + rc-util "^5.16.1" + rc-virtual-list "^3.5.2" + +rc-slider@~11.1.8: + version "11.1.9" + resolved "https://registry.npmmirror.com/rc-slider/-/rc-slider-11.1.9.tgz#d872130fbf4ec51f28543d62e90451091d6f5208" + integrity sha512-h8IknhzSh3FEM9u8ivkskh+Ef4Yo4JRIY2nj7MrH6GQmrwV6mcpJf5/4KgH5JaVI1H3E52yCdpOlVyGZIeph5A== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.36.0" + +rc-steps@~6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/rc-steps/-/rc-steps-6.0.1.tgz#c2136cd0087733f6d509209a84a5c80dc29a274d" + integrity sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g== + dependencies: + "@babel/runtime" "^7.16.7" + classnames "^2.2.3" + rc-util "^5.16.1" + +rc-switch@~4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/rc-switch/-/rc-switch-4.1.0.tgz#f37d81b4e0c5afd1274fd85367b17306bf25e7d7" + integrity sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg== + dependencies: + "@babel/runtime" "^7.21.0" + classnames "^2.2.1" + rc-util "^5.30.0" + +rc-table@~7.52.6: + version "7.52.7" + resolved "https://registry.npmmirror.com/rc-table/-/rc-table-7.52.7.tgz#ad816bbcfe3491581d9140a59a9e43fd08327211" + integrity sha512-yuZfnTpuHwRa4JH+F28wQfGeDzqtgIDvLBBJk5sFncXQjTExhtBNc6dPfVo5pL5SjabJEoejefs6wsrAKfhDoQ== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/context" "^1.4.0" + classnames "^2.2.5" + rc-resize-observer "^1.1.0" + rc-util "^5.44.3" + rc-virtual-list "^3.14.2" + +rc-tabs@~15.7.0: + version "15.7.0" + resolved "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-15.7.0.tgz#14ca2ee6213d00491a8b67ae26e2d35c256bf19a" + integrity sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA== + dependencies: + "@babel/runtime" "^7.11.2" + classnames "2.x" + rc-dropdown "~4.2.0" + rc-menu "~9.16.0" + rc-motion "^2.6.2" + rc-resize-observer "^1.0.0" + rc-util "^5.34.1" + +rc-textarea@~1.10.0, rc-textarea@~1.10.2: + version "1.10.2" + resolved "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.10.2.tgz#459e3574a95c32939c6793045a1e4db04cb514cc" + integrity sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.1" + rc-input "~1.8.0" + rc-resize-observer "^1.0.0" + rc-util "^5.27.0" + +rc-tooltip@~6.4.0: + version "6.4.0" + resolved "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.4.0.tgz#e832ed0392872025e59928cfc1ad9045656467fd" + integrity sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g== + dependencies: + "@babel/runtime" "^7.11.2" + "@rc-component/trigger" "^2.0.0" + classnames "^2.3.1" + rc-util "^5.44.3" + +rc-tree-select@~5.27.0: + version "5.27.0" + resolved "https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.27.0.tgz#3daa62972ae80846dac96bf4776d1a9dc9c7c4c6" + integrity sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww== + dependencies: + "@babel/runtime" "^7.25.7" + classnames "2.x" + rc-select "~14.16.2" + rc-tree "~5.13.0" + rc-util "^5.43.0" + +rc-tree@~5.13.0, rc-tree@~5.13.1: + version "5.13.1" + resolved "https://registry.npmmirror.com/rc-tree/-/rc-tree-5.13.1.tgz#f36a33a94a1282f4b09685216c01487089748910" + integrity sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.0.1" + rc-util "^5.16.1" + rc-virtual-list "^3.5.1" + +rc-upload@~4.9.2: + version "4.9.2" + resolved "https://registry.npmmirror.com/rc-upload/-/rc-upload-4.9.2.tgz#297f52fd1b1c2a4b570c3e42444609b7530531bb" + integrity sha512-nHx+9rbd1FKMiMRYsqQ3NkXUv7COHPBo3X1Obwq9SWS6/diF/A0aJ5OHubvwUAIDs+4RMleljV0pcrNUc823GQ== + dependencies: + "@babel/runtime" "^7.18.3" + classnames "^2.2.5" + rc-util "^5.2.0" + +rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.40.1, rc-util@^5.43.0, rc-util@^5.44.0, rc-util@^5.44.1, rc-util@^5.44.3, rc-util@^5.44.4: + version "5.44.4" + resolved "https://registry.npmmirror.com/rc-util/-/rc-util-5.44.4.tgz#89ee9037683cca01cd60f1a6bbda761457dd6ba5" + integrity sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w== + dependencies: + "@babel/runtime" "^7.18.3" + react-is "^18.2.0" + +rc-virtual-list@^3.14.2, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: + version "3.19.2" + resolved "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.19.2.tgz#1dd2d782c9a3ccbe537bb873447d73f83af8de0f" + integrity sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA== + dependencies: + "@babel/runtime" "^7.20.0" + classnames "^2.2.6" + rc-resize-observer "^1.0.0" + rc-util "^5.36.0" + react-dom@^19.1.0: version "19.1.1" resolved "https://registry.npmmirror.com/react-dom/-/react-dom-19.1.1.tgz" @@ -2382,6 +3503,11 @@ react-dom@^19.1.0: dependencies: scheduler "^0.26.0" +react-is@^18.2.0: + version "18.3.1" + resolved "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + react-markdown@^10.1.0: version "10.1.0" resolved "https://registry.npmmirror.com/react-markdown/-/react-markdown-10.1.0.tgz" @@ -2622,6 +3748,11 @@ remark-stringify@^11.0.0: mdast-util-to-markdown "^2.0.0" unified "^11.0.0" +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz" @@ -2632,6 +3763,11 @@ rgbcolor@^1.0.1: resolved "https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz#d6505ecdb304a6595da26fa4b43307306775945d" integrity sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw== +robust-predicates@^3.0.2: + version "3.0.2" + resolved "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + rollup@^4.40.0: version "4.46.1" resolved "https://registry.npmmirror.com/rollup/-/rollup-4.46.1.tgz" @@ -2661,11 +3797,28 @@ rollup@^4.40.0: "@rollup/rollup-win32-x64-msvc" "4.46.1" fsevents "~2.3.2" +rw@1: + version "1.3.3" + resolved "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + scheduler@^0.26.0: version "0.26.0" resolved "https://registry.npmmirror.com/scheduler/-/scheduler-0.26.0.tgz" integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA== +scroll-into-view-if-needed@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz#fa9524518c799b45a2ef6bbffb92bcad0296d01f" + integrity sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ== + dependencies: + compute-scroll-into-view "^3.0.2" + semver@^6.3.1: version "6.3.1" resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" @@ -2703,6 +3856,11 @@ stackblur-canvas@^2.0.0: resolved "https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz#af931277d0b5096df55e1f91c530043e066989b6" integrity sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ== +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" + integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== + stringify-entities@^4.0.0: version "4.0.4" resolved "https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.4.tgz" @@ -2730,6 +3888,11 @@ style-to-object@1.0.9: dependencies: inline-style-parser "0.2.4" +stylis@^4.3.4: + version "4.3.6" + resolved "https://registry.npmmirror.com/stylis/-/stylis-4.3.6.tgz#7c7b97191cb4f195f03ecab7d52f7902ed378320" + integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ== + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" @@ -2749,6 +3912,11 @@ text-segmentation@^1.0.3: dependencies: utrie "^1.0.2" +throttle-debounce@^5.0.0, throttle-debounce@^5.0.2: + version "5.0.2" + resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz#ec5549d84e053f043c9fd0f2a6dd892ff84456b1" + integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A== + tinyglobby@^0.2.14: version "0.2.14" resolved "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.14.tgz" @@ -2757,6 +3925,11 @@ tinyglobby@^0.2.14: fdir "^6.4.4" picomatch "^4.0.2" +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== + trim-lines@^3.0.0: version "3.0.1" resolved "https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz" @@ -2774,6 +3947,16 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + +undici@^6.19.5: + version "6.21.3" + resolved "https://registry.npmmirror.com/undici/-/undici-6.21.3.tgz#185752ad92c3d0efe7a7d1f6854a50f83b552d7a" + integrity sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw== + unified@^11.0.0, unified@^11.0.3, unified@~11.0.0: version "11.0.5" resolved "https://registry.npmmirror.com/unified/-/unified-11.0.5.tgz" @@ -2899,6 +4082,18 @@ web-namespaces@^2.0.0: resolved "https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz" integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== +whatwg-encoding@^3.1.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" + integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== + which@^2.0.1: version "2.0.2" resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz" @@ -2916,6 +4111,11 @@ yallist@^3.0.2: resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yaml@^2.5.1: + version "2.8.1" + resolved "https://registry.npmmirror.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79" + integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz"