更新deno.lock文件,添加Ant Design及相关依赖项,优化主题设置页面的配色方案逻辑,增强测试用例以确保功能正常,提升代码可维护性和用户体验。

This commit is contained in:
zyh
2025-04-11 05:54:40 +00:00
parent 6f42a840ef
commit e6ef814950
3 changed files with 764 additions and 52 deletions

View File

@@ -481,22 +481,26 @@ export const ThemeSettingsPage = () => {
{/* 配色方案选择 */}
<Form.Item label="预设配色方案">
<Space wrap>
{Object.entries(COLOR_SCHEMES[form.getFieldValue('theme_mode') as ThemeMode]).map(([key, scheme]) => (
<Button
key={key}
onClick={() => {
handleColorSchemeChange(key);
form.setFieldValue('scheme_name', scheme.name);
}}
style={{
backgroundColor: scheme.background,
color: scheme.text,
borderColor: scheme.primary
}}
>
{scheme.name}
</Button>
))}
{(() => {
const themeMode = (form.getFieldValue('theme_mode') as ThemeMode) || ThemeMode.LIGHT;
const schemes = COLOR_SCHEMES[themeMode] || {};
return Object.entries(schemes).map(([key, scheme]) => (
<Button
key={key}
onClick={() => {
handleColorSchemeChange(key);
form.setFieldValue('scheme_name', scheme.name);
}}
style={{
backgroundColor: scheme.background,
color: scheme.text,
borderColor: scheme.primary
}}
>
{scheme.name}
</Button>
));
})()}
</Space>
</Form.Item>

View File

@@ -1,61 +1,116 @@
import { JSDOM } from 'npm:jsdom'
import React from 'react'
import 'npm:jsdom-global'
import {render, fireEvent, within, screen} from '@testing-library/react'
import { ThemeSettingsPage } from "../pages_settings.tsx"
import { ThemeProvider } from "../hooks_sys.tsx"
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import {
assertEquals,
assertExists,
assertNotEquals,
assertRejects,
} from "https://deno.land/std@0.217.0/assert/mod.ts";
const queryClient = new QueryClient()
const dom = new JSDOM(`<body></body>`, { runScripts: "dangerously" , pretendToBeVisual: true });
const dom = new JSDOM(`<body></body>`, {
runScripts: "dangerously",
pretendToBeVisual: true,
url: "http://localhost"
});
// The script will be executed and modify the DOM:
// console.log(dom.window.document.getElementById("root").innerHTML); // 1
// 模拟浏览器环境
globalThis.window = dom.window;
globalThis.document = dom.window.document;
const customScreen = within(document.body)
// console.log(dom.window.document.getElementById("root").innerHTML); // 1
// const div = globalThis.document.createElement("div");
// div.innerHTML = "主题设置";
// globalThis.document.getElementById("root")?.appendChild(div);
// 定义浏览器环境所需的类
globalThis.Element = dom.window.Element;
globalThis.HTMLElement = dom.window.HTMLElement;
globalThis.ShadowRoot = dom.window.ShadowRoot;
globalThis.SVGElement = dom.window.SVGElement;
// render(<TestNode />);
// 模拟 getComputedStyle
globalThis.getComputedStyle = (elt) => {
const style = new dom.window.CSSStyleDeclaration();
style.getPropertyValue = () => '';
return style;
};
// const testMessage = 'Test Message'
// render(<HiddenMessage>{testMessage}</HiddenMessage>)
// console.log('document.body.innerHTML', document.body.innerHTML);
// const customScreen = within(document.body)
// 模拟matchMedia函数
globalThis.matchMedia = (query) => ({
matches: query.includes('max-width'),
media: query,
onchange: null,
addListener: () => {},
removeListener: () => {},
addEventListener: () => {},
removeEventListener: () => {},
dispatchEvent: () => false,
});
// screen.debug()
// 模拟动画相关API
globalThis.AnimationEvent = globalThis.AnimationEvent || dom.window.Event;
globalThis.TransitionEvent = globalThis.TransitionEvent || dom.window.Event;
// // // query* functions will return the element or null if it cannot be found
// // // get* functions will return the element or throw an error if it cannot be found
// console.log('queryByText', customScreen.queryByText(testMessage))
// 模拟requestAnimationFrame
globalThis.requestAnimationFrame = globalThis.requestAnimationFrame || ((cb) => setTimeout(cb, 0));
globalThis.cancelAnimationFrame = globalThis.cancelAnimationFrame || clearTimeout;
// // // the queries can accept a regex to make your selectors more resilient to content tweaks and changes.
// fireEvent.click(customScreen.getByLabelText(/show/i))
// 设置浏览器尺寸相关方法
window.resizeTo = (width, height) => {
window.innerWidth = width || window.innerWidth;
window.innerHeight = height || window.innerHeight;
window.dispatchEvent(new Event('resize'));
};
window.scrollTo = () => {};
// screen.debug()
const customScreen = within(document.body);
// // // .toBeInTheDocument() is an assertion that comes from jest-dom
// // // otherwise you could use .toBeDefined()
// console.log('getByText', customScreen.getByText(testMessage).innerHTML.includes(testMessage))
// 使用异步测试处理真实API调用
Deno.test('主题设置页面测试', async (t) => {
// 渲染组件
const {findByRole, debug} = render(
<QueryClientProvider client={queryClient}>
<ThemeProvider>
<ThemeSettingsPage />
</ThemeProvider>
</QueryClientProvider>
)
// // console.log(globalThis.document.body.innerHTML);
// // console.log(screen.debug());
// // screen.findByText("主题设置");
debug(await findByRole('radio', { name: /浅色模式/i }))
render((
<QueryClientProvider client={queryClient}>
<ThemeProvider>
<ThemeSettingsPage />
</ThemeProvider>
</QueryClientProvider>
))
// 测试1: 渲染基本元素
await t.step('应渲染主题设置标题', async () => {
const title = await customScreen.findByText(/主题设置/i)
assertExists(title, '未找到主题设置标题')
})
screen.debug()
// 测试2: 表单初始化状态
await t.step('表单应正确初始化', async () => {
// 检查主题模式选择
const lightRadio = await customScreen.findByRole('radio', { name: /浅色模式/i })
assertExists(lightRadio, '未找到浅色模式单选按钮')
// 检查主题模式标签
const themeModeLabel = await customScreen.findByText(/主题模式/i)
assertExists(themeModeLabel, '未找到主题模式标签')
// // 检查主题模式选择器 - Ant Design 使用 div 包裹 radio 而不是 radiogroup
// const themeModeField = await customScreen.findByTestId('theme-mode-selector')
// assertExists(themeModeField, '未找到主题模式选择器')
})
// screen.findByText("主题设置")
// 测试3: 配色方案选择
await t.step('应显示配色方案选项', async () => {
// 查找预设配色方案标签
const colorSchemeLabel = await customScreen.findByText('预设配色方案')
assertExists(colorSchemeLabel, '未找到预设配色方案标签')
// 查找配色方案按钮
const colorSchemeButtons = await customScreen.findAllByRole('button')
assertNotEquals(colorSchemeButtons.length, 0, '未找到配色方案按钮')
})
})

655
deno.lock generated
View File

@@ -7,9 +7,11 @@
"npm:@testing-library/react@16.3.0": "16.3.0_@testing-library+dom@10.4.0_react@19.1.0_react-dom@19.1.0__react@19.1.0",
"npm:@testing-library/user-event@*": "14.6.1_@testing-library+dom@10.4.0",
"npm:@types/node@*": "22.12.0",
"npm:antd@*": "5.24.6_react@19.1.0_react-dom@19.1.0__react@19.1.0_dayjs@1.11.13",
"npm:global-jsdom@*": "26.0.0_jsdom@26.0.0",
"npm:j@*": "1.0.0",
"npm:js@*": "0.1.0",
"npm:jsdom-global@*": "3.0.2_jsdom@26.0.0",
"npm:jsdom@*": "26.0.0",
"npm:react@*": "19.1.0"
},
@@ -22,6 +24,68 @@
"@adobe/css-tools@4.4.2": {
"integrity": "sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A=="
},
"@ant-design/colors@7.2.0": {
"integrity": "sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==",
"dependencies": [
"@ant-design/fast-color"
]
},
"@ant-design/cssinjs-utils@1.1.3_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==",
"dependencies": [
"@ant-design/cssinjs",
"@babel/runtime",
"rc-util",
"react",
"react-dom"
]
},
"@ant-design/cssinjs@1.23.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==",
"dependencies": [
"@babel/runtime",
"@emotion/hash",
"@emotion/unitless",
"classnames",
"csstype",
"rc-util",
"react",
"react-dom",
"stylis"
]
},
"@ant-design/fast-color@2.0.6": {
"integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==",
"dependencies": [
"@babel/runtime"
]
},
"@ant-design/icons-svg@4.4.2": {
"integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA=="
},
"@ant-design/icons@5.6.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==",
"dependencies": [
"@ant-design/colors",
"@ant-design/icons-svg",
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"@ant-design/react-slick@1.1.2_react@19.1.0": {
"integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==",
"dependencies": [
"@babel/runtime",
"classnames",
"json2mq",
"react",
"resize-observer-polyfill",
"throttle-debounce"
]
},
"@asamuzakjp/css-color@3.1.1_@csstools+css-parser-algorithms@3.0.4__@csstools+css-tokenizer@3.0.3_@csstools+css-tokenizer@3.0.3": {
"integrity": "sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==",
"dependencies": [
@@ -77,6 +141,99 @@
"@csstools/css-tokenizer@3.0.3": {
"integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw=="
},
"@emotion/hash@0.8.0": {
"integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
},
"@emotion/unitless@0.7.5": {
"integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
},
"@rc-component/async-validator@5.0.4": {
"integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==",
"dependencies": [
"@babel/runtime"
]
},
"@rc-component/color-picker@2.0.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==",
"dependencies": [
"@ant-design/fast-color",
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"@rc-component/context@1.4.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==",
"dependencies": [
"@babel/runtime",
"rc-util",
"react",
"react-dom"
]
},
"@rc-component/mini-decimal@1.1.0": {
"integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==",
"dependencies": [
"@babel/runtime"
]
},
"@rc-component/mutate-observer@1.1.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"@rc-component/portal@1.1.2_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"@rc-component/qrcode@1.0.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"@rc-component/tour@1.15.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==",
"dependencies": [
"@babel/runtime",
"@rc-component/portal",
"@rc-component/trigger",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"@rc-component/trigger@2.2.6_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q==",
"dependencies": [
"@babel/runtime",
"@rc-component/portal",
"classnames",
"rc-motion",
"rc-resize-observer",
"rc-util",
"react",
"react-dom"
]
},
"@testing-library/dom@10.4.0": {
"integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==",
"dependencies": [
@@ -144,6 +301,62 @@
"ansi-styles@5.2.0": {
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
},
"antd@5.24.6_react@19.1.0_react-dom@19.1.0__react@19.1.0_dayjs@1.11.13": {
"integrity": "sha512-xIlTa/1CTbgkZsdU/dOXkYvJXb9VoiMwsaCzpKFH2zAEY3xqOfwQ57/DdG7lAdrWP7QORtSld4UA6suxzuTHXw==",
"dependencies": [
"@ant-design/colors",
"@ant-design/cssinjs",
"@ant-design/cssinjs-utils",
"@ant-design/fast-color",
"@ant-design/icons",
"@ant-design/react-slick",
"@babel/runtime",
"@rc-component/color-picker",
"@rc-component/mutate-observer",
"@rc-component/qrcode",
"@rc-component/tour",
"@rc-component/trigger",
"classnames",
"copy-to-clipboard",
"dayjs",
"rc-cascader",
"rc-checkbox",
"rc-collapse",
"rc-dialog",
"rc-drawer",
"rc-dropdown",
"rc-field-form",
"rc-image",
"rc-input",
"rc-input-number",
"rc-mentions",
"rc-menu",
"rc-motion",
"rc-notification",
"rc-pagination",
"rc-picker",
"rc-progress",
"rc-rate",
"rc-resize-observer",
"rc-segmented",
"rc-select",
"rc-slider",
"rc-steps",
"rc-switch",
"rc-table",
"rc-tabs",
"rc-textarea",
"rc-tooltip",
"rc-tree",
"rc-tree-select",
"rc-upload",
"rc-util",
"react",
"react-dom",
"scroll-into-view-if-needed",
"throttle-debounce"
]
},
"aria-query@5.3.0": {
"integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
"dependencies": [
@@ -184,6 +397,9 @@
"supports-color"
]
},
"classnames@2.5.1": {
"integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
},
"codepage@1.15.0": {
"integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
},
@@ -211,6 +427,9 @@
"commander@13.1.0": {
"integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw=="
},
"compute-scroll-into-view@3.1.1": {
"integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw=="
},
"concat-stream@2.0.0": {
"integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
"dependencies": [
@@ -220,6 +439,12 @@
"typedarray"
]
},
"copy-to-clipboard@3.3.3": {
"integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==",
"dependencies": [
"toggle-selection"
]
},
"crc-32@1.2.2": {
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
},
@@ -233,6 +458,9 @@
"rrweb-cssom"
]
},
"csstype@3.1.3": {
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
"data-urls@5.0.0": {
"integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dependencies": [
@@ -240,6 +468,9 @@
"whatwg-url"
]
},
"dayjs@1.11.13": {
"integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
},
"debug@4.4.0": {
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dependencies": [
@@ -413,6 +644,12 @@
"commander@1.1.1"
]
},
"jsdom-global@3.0.2_jsdom@26.0.0": {
"integrity": "sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg==",
"dependencies": [
"jsdom"
]
},
"jsdom@26.0.0": {
"integrity": "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==",
"dependencies": [
@@ -439,6 +676,12 @@
"xml-name-validator"
]
},
"json2mq@0.2.0": {
"integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==",
"dependencies": [
"string-convert"
]
},
"keypress@0.1.0": {
"integrity": "sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA=="
},
@@ -486,12 +729,398 @@
"dependencies": [
"ansi-regex",
"ansi-styles@5.2.0",
"react-is"
"react-is@17.0.2"
]
},
"punycode@2.3.1": {
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
},
"rc-cascader@3.33.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-Kyl4EJ7ZfCBuidmZVieegcbFw0RcU5bHHSbtEdmuLYd0fYHCAiYKZ6zon7fWAVyC6rWWOOib0XKdTSf7ElC9rg==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-select",
"rc-tree",
"rc-util",
"react",
"react-dom"
]
},
"rc-checkbox@3.5.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-collapse@3.9.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-motion",
"rc-util",
"react",
"react-dom"
]
},
"rc-dialog@9.6.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==",
"dependencies": [
"@babel/runtime",
"@rc-component/portal",
"classnames",
"rc-motion",
"rc-util",
"react",
"react-dom"
]
},
"rc-drawer@7.2.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==",
"dependencies": [
"@babel/runtime",
"@rc-component/portal",
"classnames",
"rc-motion",
"rc-util",
"react",
"react-dom"
]
},
"rc-dropdown@4.2.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==",
"dependencies": [
"@babel/runtime",
"@rc-component/trigger",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-field-form@2.7.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==",
"dependencies": [
"@babel/runtime",
"@rc-component/async-validator",
"rc-util",
"react",
"react-dom"
]
},
"rc-image@7.11.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-XuoWx4KUXg7hNy5mRTy1i8c8p3K8boWg6UajbHpDXS5AlRVucNfTi5YxTtPBTBzegxAZpvuLfh3emXFt6ybUdA==",
"dependencies": [
"@babel/runtime",
"@rc-component/portal",
"classnames",
"rc-dialog",
"rc-motion",
"rc-util",
"react",
"react-dom"
]
},
"rc-input-number@9.4.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA==",
"dependencies": [
"@babel/runtime",
"@rc-component/mini-decimal",
"classnames",
"rc-input",
"rc-util",
"react",
"react-dom"
]
},
"rc-input@1.7.3_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-A5w4egJq8+4JzlQ55FfQjDnPvOaAbzwC3VLOAdOytyek3TboSOP9qxN+Gifup+shVXfvecBLBbWBpWxmk02SWQ==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-mentions@2.19.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA==",
"dependencies": [
"@babel/runtime",
"@rc-component/trigger",
"classnames",
"rc-input",
"rc-menu",
"rc-textarea",
"rc-util",
"react",
"react-dom"
]
},
"rc-menu@9.16.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==",
"dependencies": [
"@babel/runtime",
"@rc-component/trigger",
"classnames",
"rc-motion",
"rc-overflow",
"rc-util",
"react",
"react-dom"
]
},
"rc-motion@2.9.5_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-notification@5.6.3_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-42szwnn8VYQoT6GnjO00i1iwqV9D1TTMvxObWsuLwgl0TsOokzhkYiufdtQBsJMFjJravS1hfDKVMHLKLcPE4g==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-motion",
"rc-util",
"react",
"react-dom"
]
},
"rc-overflow@1.4.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-resize-observer",
"rc-util",
"react",
"react-dom"
]
},
"rc-pagination@5.1.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-picker@4.11.3_dayjs@1.11.13_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==",
"dependencies": [
"@babel/runtime",
"@rc-component/trigger",
"classnames",
"dayjs",
"rc-overflow",
"rc-resize-observer",
"rc-util",
"react",
"react-dom"
]
},
"rc-progress@4.0.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-rate@2.13.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-resize-observer@1.4.3_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom",
"resize-observer-polyfill"
]
},
"rc-segmented@2.7.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-motion",
"rc-util",
"react",
"react-dom"
]
},
"rc-select@14.16.6_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg==",
"dependencies": [
"@babel/runtime",
"@rc-component/trigger",
"classnames",
"rc-motion",
"rc-overflow",
"rc-util",
"rc-virtual-list",
"react",
"react-dom"
]
},
"rc-slider@11.1.8_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-steps@6.0.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-switch@4.1.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-table@7.50.4_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-Y+YuncnQqoS5e7yHvfvlv8BmCvwDYDX/2VixTBEhkMDk9itS9aBINp4nhzXFKiBP/frG4w0pS9d9Rgisl0T1Bw==",
"dependencies": [
"@babel/runtime",
"@rc-component/context",
"classnames",
"rc-resize-observer",
"rc-util",
"rc-virtual-list",
"react",
"react-dom"
]
},
"rc-tabs@15.5.2_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-Hbqf2IV6k/jPgfMjPtIDmPV0D0C9c/fN4B/fYcoh9qqaUzUZQoK0PYzsV3UaV+3UsmyoYt48p74m/HkLhGTw+w==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-dropdown",
"rc-menu",
"rc-motion",
"rc-resize-observer",
"rc-util",
"react",
"react-dom"
]
},
"rc-textarea@1.9.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-input",
"rc-resize-observer",
"rc-util",
"react",
"react-dom"
]
},
"rc-tooltip@6.4.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==",
"dependencies": [
"@babel/runtime",
"@rc-component/trigger",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-tree-select@5.27.0_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-select",
"rc-tree",
"rc-util",
"react",
"react-dom"
]
},
"rc-tree@5.13.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-motion",
"rc-util",
"rc-virtual-list",
"react",
"react-dom"
]
},
"rc-upload@4.8.1_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-toEAhwl4hjLAI1u8/CgKWt30BR06ulPa4iGQSMvSXoHzO88gPCslxqV/mnn4gJU7PDoltGIC9Eh+wkeudqgHyw==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-util",
"react",
"react-dom"
]
},
"rc-util@5.44.4_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==",
"dependencies": [
"@babel/runtime",
"react",
"react-dom",
"react-is@18.3.1"
]
},
"rc-virtual-list@3.18.5_react@19.1.0_react-dom@19.1.0__react@19.1.0": {
"integrity": "sha512-1FuxVSxhzTj3y8k5xMPbhXCB0t2TOiI3Tq+qE2Bu+GGV7f+ECVuQl4OUg6lZ2qT5fordTW7CBpr9czdzXCI7Pg==",
"dependencies": [
"@babel/runtime",
"classnames",
"rc-resize-observer",
"rc-util",
"react",
"react-dom"
]
},
"react-dom@19.1.0_react@19.1.0": {
"integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
"dependencies": [
@@ -502,6 +1131,9 @@
"react-is@17.0.2": {
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
},
"react-is@18.3.1": {
"integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
},
"react@19.1.0": {
"integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg=="
},
@@ -523,6 +1155,9 @@
"regenerator-runtime@0.14.1": {
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"resize-observer-polyfill@1.5.1": {
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"rrweb-cssom@0.8.0": {
"integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw=="
},
@@ -541,12 +1176,21 @@
"scheduler@0.26.0": {
"integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA=="
},
"scroll-into-view-if-needed@3.1.0": {
"integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
"dependencies": [
"compute-scroll-into-view"
]
},
"ssf@0.11.2": {
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"dependencies": [
"frac"
]
},
"string-convert@0.2.1": {
"integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A=="
},
"string_decoder@1.3.0": {
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": [
@@ -559,6 +1203,9 @@
"min-indent"
]
},
"stylis@4.3.6": {
"integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ=="
},
"supports-color@7.2.0": {
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": [
@@ -568,6 +1215,9 @@
"symbol-tree@3.2.4": {
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
"throttle-debounce@5.0.2": {
"integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A=="
},
"tldts-core@6.1.85": {
"integrity": "sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA=="
},
@@ -577,6 +1227,9 @@
"tldts-core"
]
},
"toggle-selection@1.0.6": {
"integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ=="
},
"tough-cookie@5.1.2": {
"integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dependencies": [