ant-design/docs/react/use-with-umi-cn/index.html
2025-06-10 09:02:15 +00:00

392 lines
512 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/umi.24c0192c.js"/><script async="" src="//www.googletagmanager.com/gtag/js?id=UA-72788897-1"></script><link rel="shortcut icon" href="https://gw.alipayobjects.com/zos/rmsportal/rlpTLlbMzTNYuZGGCVYM.png"/><meta name="theme-color" content="#1677ff"/><meta name="build-time" content="1749545339772"/><meta name="build-hash" content="aa393e22b754f0a078576456a6601622508c385f"/><link rel="prefetch" as="font" href="//at.alicdn.com/t/webfont_6e11e43nfj.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font" href="//at.alicdn.com/t/webfont_6e11e43nfj.woff" type="font/woff" crossorigin="anonymous"/><link rel="prefetch" as="font" href="//at.alicdn.com/t/webfont_6e11e43nfj.ttf" type="font/ttf" crossorigin="anonymous"/><link rel="prefetch" as="font" href="//at.alicdn.com/t/webfont_exesdog9toj.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="prefetch" as="font" href="//at.alicdn.com/t/webfont_exesdog9toj.woff" type="font/woff" crossorigin="anonymous"/><link rel="prefetch" as="font" href="//at.alicdn.com/t/webfont_exesdog9toj.ttf" type="font/ttf" crossorigin="anonymous"/><link rel="preload" as="font" href="//at.alicdn.com/wf/webfont/exMpJIukiCms/Gsw2PSKrftc1yNWMNlXgw.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="preload" as="font" href="//at.alicdn.com/wf/webfont/exMpJIukiCms/vtu73by4O2gEBcvBuLgeu.woff" type="font/woff2" crossorigin="anonymous"/><link rel="stylesheet" href="/umi.fa429c5c.css"/><script>
(function () {
function isLocalStorageNameSupported() {
const testKey = 'test';
const storage = window.localStorage;
try {
storage.setItem(testKey, '1');
storage.removeItem(testKey);
return true;
} catch (error) {
return false;
}
}
// 优先级提高到所有静态资源的前面,语言不对,加载其他静态资源没意义
const pathname = location.pathname;
function isZhCN(pathname) {
return /-cn\/?$/.test(pathname);
}
function getLocalizedPathname(path, zhCN) {
const pathname = path.indexOf('/') === 0 ? path : '/' + path;
if (!zhCN) {
// to enUS
return /\/?index(-cn)?/.test(pathname) ? '/' : pathname.replace('-cn', '');
} else if (pathname === '/') {
return '/index-cn';
} else if (pathname.indexOf('/') === pathname.length - 1) {
return pathname.replace(/\/$/, '-cn/');
}
return pathname + '-cn';
}
// 兼容旧的 URL `?locale=...`
const queryString = location.search;
if (queryString) {
const isZhCNConfig = queryString.indexOf('zh-CN') > -1;
if (isZhCNConfig && !isZhCN(pathname)) {
location.pathname = getLocalizedPathname(pathname, isZhCNConfig);
}
}
// 首页无视链接里面的语言设置 https://github.com/ant-design/ant-design/issues/4552
if (isLocalStorageNameSupported() && (pathname === '/' || pathname === '/index-cn')) {
const lang =
(window.localStorage && localStorage.getItem('locale')) ||
((navigator.language || navigator.browserLanguage).toLowerCase() === 'zh-cn'
? 'zh-CN'
: 'en-US');
// safari is 'zh-cn', while other browser is 'zh-CN';
if ((lang === 'zh-CN') !== isZhCN(pathname)) {
location.pathname = getLocalizedPathname(pathname, lang === 'zh-CN');
}
}
document.documentElement.className += isZhCN(pathname) ? 'zh-cn' : 'en-us';
})();
</script><script>window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-72788897-1');</script><style data-type="antd-cssinjs">a{color:var(--ant-color-link);text-decoration:var(--ant-link-decoration);background-color:transparent;outline:none;cursor:pointer;transition:color var(--ant-motion-duration-slow);-webkit-text-decoration-skip:objects;}a:hover{color:var(--ant-color-link-hover);}a:active{color:var(--ant-color-link-active);}a:active,a:hover{text-decoration:var(--ant-link-hover-decoration);outline:0;}a:focus{text-decoration:var(--ant-link-focus-decoration);outline:0;}a[disabled]{color:var(--ant-color-text-disabled);cursor:not-allowed;}a{color:var(--ant-color-link);text-decoration:var(--ant-link-decoration);background-color:transparent;outline:none;cursor:pointer;transition:color var(--ant-motion-duration-slow);-webkit-text-decoration-skip:objects;}a:hover{color:var(--ant-color-link-hover);}a:active{color:var(--ant-color-link-active);}a:active,a:hover{text-decoration:var(--ant-link-hover-decoration);outline:0;}a:focus{text-decoration:var(--ant-link-focus-decoration);outline:0;}a[disabled]{color:var(--ant-color-text-disabled);cursor:not-allowed;}.anticon{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.anticon >*{line-height:1;}.anticon svg{display:inline-block;}.anticon .anticon .anticon-icon{display:block;}.ant-app{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-app::before,.ant-app::after{box-sizing:border-box;}.ant-app [class^="ant-app"],.ant-app [class*=" ant-app"]{box-sizing:border-box;}.ant-app [class^="ant-app"]::before,.ant-app [class*=" ant-app"]::before,.ant-app [class^="ant-app"]::after,.ant-app [class*=" ant-app"]::after{box-sizing:border-box;}.ant-app{color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);font-family:var(--ant-font-family);}.ant-app.ant-app-rtl{direction:rtl;}.ant-row{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-row::before,.ant-row::after{box-sizing:border-box;}.ant-row [class^="ant-row"],.ant-row [class*=" ant-row"]{box-sizing:border-box;}.ant-row [class^="ant-row"]::before,.ant-row [class*=" ant-row"]::before,.ant-row [class^="ant-row"]::after,.ant-row [class*=" ant-row"]::after{box-sizing:border-box;}.ant-row{display:flex;flex-flow:row wrap;min-width:0;}.ant-row::before,.ant-row::after{display:flex;}.ant-row-no-wrap{flex-wrap:nowrap;}.ant-row-start{justify-content:flex-start;}.ant-row-center{justify-content:center;}.ant-row-end{justify-content:flex-end;}.ant-row-space-between{justify-content:space-between;}.ant-row-space-around{justify-content:space-around;}.ant-row-space-evenly{justify-content:space-evenly;}.ant-row-top{align-items:flex-start;}.ant-row-middle{align-items:center;}.ant-row-bottom{align-items:flex-end;}.ant-col{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-col::before,.ant-col::after{box-sizing:border-box;}.ant-col [class^="ant-col"],.ant-col [class*=" ant-col"]{box-sizing:border-box;}.ant-col [class^="ant-col"]::before,.ant-col [class*=" ant-col"]::before,.ant-col [class^="ant-col"]::after,.ant-col [class*=" ant-col"]::after{box-sizing:border-box;}.ant-col{position:relative;max-width:100%;min-height:1px;}.ant-col-24{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 100%;max-width:100%;}.ant-col-push-24{inset-inline-start:100%;}.ant-col-pull-24{inset-inline-end:100%;}.ant-col-offset-24{margin-inline-start:100%;}.ant-col-order-24{order:24;}.ant-col-23{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 95.83333333333334%;max-width:95.83333333333334%;}.ant-col-push-23{inset-inline-start:95.83333333333334%;}.ant-col-pull-23{inset-inline-end:95.83333333333334%;}.ant-col-offset-23{margin-inline-start:95.83333333333334%;}.ant-col-order-23{order:23;}.ant-col-22{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 91.66666666666666%;max-width:91.66666666666666%;}.ant-col-push-22{inset-inline-start:91.66666666666666%;}.ant-col-pull-22{inset-inline-end:91.66666666666666%;}.ant-col-offset-22{margin-inline-start:91.66666666666666%;}.ant-col-order-22{order:22;}.ant-col-21{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 87.5%;max-width:87.5%;}.ant-col-push-21{inset-inline-start:87.5%;}.ant-col-pull-21{inset-inline-end:87.5%;}.ant-col-offset-21{margin-inline-start:87.5%;}.ant-col-order-21{order:21;}.ant-col-20{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 83.33333333333334%;max-width:83.33333333333334%;}.ant-col-push-20{inset-inline-start:83.33333333333334%;}.ant-col-pull-20{inset-inline-end:83.33333333333334%;}.ant-col-offset-20{margin-inline-start:83.33333333333334%;}.ant-col-order-20{order:20;}.ant-col-19{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 79.16666666666666%;max-width:79.16666666666666%;}.ant-col-push-19{inset-inline-start:79.16666666666666%;}.ant-col-pull-19{inset-inline-end:79.16666666666666%;}.ant-col-offset-19{margin-inline-start:79.16666666666666%;}.ant-col-order-19{order:19;}.ant-col-18{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 75%;max-width:75%;}.ant-col-push-18{inset-inline-start:75%;}.ant-col-pull-18{inset-inline-end:75%;}.ant-col-offset-18{margin-inline-start:75%;}.ant-col-order-18{order:18;}.ant-col-17{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 70.83333333333334%;max-width:70.83333333333334%;}.ant-col-push-17{inset-inline-start:70.83333333333334%;}.ant-col-pull-17{inset-inline-end:70.83333333333334%;}.ant-col-offset-17{margin-inline-start:70.83333333333334%;}.ant-col-order-17{order:17;}.ant-col-16{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 66.66666666666666%;max-width:66.66666666666666%;}.ant-col-push-16{inset-inline-start:66.66666666666666%;}.ant-col-pull-16{inset-inline-end:66.66666666666666%;}.ant-col-offset-16{margin-inline-start:66.66666666666666%;}.ant-col-order-16{order:16;}.ant-col-15{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 62.5%;max-width:62.5%;}.ant-col-push-15{inset-inline-start:62.5%;}.ant-col-pull-15{inset-inline-end:62.5%;}.ant-col-offset-15{margin-inline-start:62.5%;}.ant-col-order-15{order:15;}.ant-col-14{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 58.333333333333336%;max-width:58.333333333333336%;}.ant-col-push-14{inset-inline-start:58.333333333333336%;}.ant-col-pull-14{inset-inline-end:58.333333333333336%;}.ant-col-offset-14{margin-inline-start:58.333333333333336%;}.ant-col-order-14{order:14;}.ant-col-13{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 54.166666666666664%;max-width:54.166666666666664%;}.ant-col-push-13{inset-inline-start:54.166666666666664%;}.ant-col-pull-13{inset-inline-end:54.166666666666664%;}.ant-col-offset-13{margin-inline-start:54.166666666666664%;}.ant-col-order-13{order:13;}.ant-col-12{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 50%;max-width:50%;}.ant-col-push-12{inset-inline-start:50%;}.ant-col-pull-12{inset-inline-end:50%;}.ant-col-offset-12{margin-inline-start:50%;}.ant-col-order-12{order:12;}.ant-col-11{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 45.83333333333333%;max-width:45.83333333333333%;}.ant-col-push-11{inset-inline-start:45.83333333333333%;}.ant-col-pull-11{inset-inline-end:45.83333333333333%;}.ant-col-offset-11{margin-inline-start:45.83333333333333%;}.ant-col-order-11{order:11;}.ant-col-10{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 41.66666666666667%;max-width:41.66666666666667%;}.ant-col-push-10{inset-inline-start:41.66666666666667%;}.ant-col-pull-10{inset-inline-end:41.66666666666667%;}.ant-col-offset-10{margin-inline-start:41.66666666666667%;}.ant-col-order-10{order:10;}.ant-col-9{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 37.5%;max-width:37.5%;}.ant-col-push-9{inset-inline-start:37.5%;}.ant-col-pull-9{inset-inline-end:37.5%;}.ant-col-offset-9{margin-inline-start:37.5%;}.ant-col-order-9{order:9;}.ant-col-8{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 33.33333333333333%;max-width:33.33333333333333%;}.ant-col-push-8{inset-inline-start:33.33333333333333%;}.ant-col-pull-8{inset-inline-end:33.33333333333333%;}.ant-col-offset-8{margin-inline-start:33.33333333333333%;}.ant-col-order-8{order:8;}.ant-col-7{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 29.166666666666668%;max-width:29.166666666666668%;}.ant-col-push-7{inset-inline-start:29.166666666666668%;}.ant-col-pull-7{inset-inline-end:29.166666666666668%;}.ant-col-offset-7{margin-inline-start:29.166666666666668%;}.ant-col-order-7{order:7;}.ant-col-6{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 25%;max-width:25%;}.ant-col-push-6{inset-inline-start:25%;}.ant-col-pull-6{inset-inline-end:25%;}.ant-col-offset-6{margin-inline-start:25%;}.ant-col-order-6{order:6;}.ant-col-5{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 20.833333333333336%;max-width:20.833333333333336%;}.ant-col-push-5{inset-inline-start:20.833333333333336%;}.ant-col-pull-5{inset-inline-end:20.833333333333336%;}.ant-col-offset-5{margin-inline-start:20.833333333333336%;}.ant-col-order-5{order:5;}.ant-col-4{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 16.666666666666664%;max-width:16.666666666666664%;}.ant-col-push-4{inset-inline-start:16.666666666666664%;}.ant-col-pull-4{inset-inline-end:16.666666666666664%;}.ant-col-offset-4{margin-inline-start:16.666666666666664%;}.ant-col-order-4{order:4;}.ant-col-3{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 12.5%;max-width:12.5%;}.ant-col-push-3{inset-inline-start:12.5%;}.ant-col-pull-3{inset-inline-end:12.5%;}.ant-col-offset-3{margin-inline-start:12.5%;}.ant-col-order-3{order:3;}.ant-col-2{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 8.333333333333332%;max-width:8.333333333333332%;}.ant-col-push-2{inset-inline-start:8.333333333333332%;}.ant-col-pull-2{inset-inline-end:8.333333333333332%;}.ant-col-offset-2{margin-inline-start:8.333333333333332%;}.ant-col-order-2{order:2;}.ant-col-1{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 4.166666666666666%;max-width:4.166666666666666%;}.ant-col-push-1{inset-inline-start:4.166666666666666%;}.ant-col-pull-1{inset-inline-end:4.166666666666666%;}.ant-col-offset-1{margin-inline-start:4.166666666666666%;}.ant-col-order-1{order:1;}.ant-col-0{display:none;}.ant-col-push-0{inset-inline-start:auto;}.ant-col-pull-0{inset-inline-end:auto;}.ant-col-offset-0{margin-inline-start:0;}.ant-col-order-0{order:0;}.ant-col-flex{flex:var(--ant-col-flex);}.ant-col-xs-24{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 100%;max-width:100%;}.ant-col-xs-push-24{inset-inline-start:100%;}.ant-col-xs-pull-24{inset-inline-end:100%;}.ant-col-xs-offset-24{margin-inline-start:100%;}.ant-col-xs-order-24{order:24;}.ant-col-xs-23{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 95.83333333333334%;max-width:95.83333333333334%;}.ant-col-xs-push-23{inset-inline-start:95.83333333333334%;}.ant-col-xs-pull-23{inset-inline-end:95.83333333333334%;}.ant-col-xs-offset-23{margin-inline-start:95.83333333333334%;}.ant-col-xs-order-23{order:23;}.ant-col-xs-22{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 91.66666666666666%;max-width:91.66666666666666%;}.ant-col-xs-push-22{inset-inline-start:91.66666666666666%;}.ant-col-xs-pull-22{inset-inline-end:91.66666666666666%;}.ant-col-xs-offset-22{margin-inline-start:91.66666666666666%;}.ant-col-xs-order-22{order:22;}.ant-col-xs-21{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 87.5%;max-width:87.5%;}.ant-col-xs-push-21{inset-inline-start:87.5%;}.ant-col-xs-pull-21{inset-inline-end:87.5%;}.ant-col-xs-offset-21{margin-inline-start:87.5%;}.ant-col-xs-order-21{order:21;}.ant-col-xs-20{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 83.33333333333334%;max-width:83.33333333333334%;}.ant-col-xs-push-20{inset-inline-start:83.33333333333334%;}.ant-col-xs-pull-20{inset-inline-end:83.33333333333334%;}.ant-col-xs-offset-20{margin-inline-start:83.33333333333334%;}.ant-col-xs-order-20{order:20;}.ant-col-xs-19{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 79.16666666666666%;max-width:79.16666666666666%;}.ant-col-xs-push-19{inset-inline-start:79.16666666666666%;}.ant-col-xs-pull-19{inset-inline-end:79.16666666666666%;}.ant-col-xs-offset-19{margin-inline-start:79.16666666666666%;}.ant-col-xs-order-19{order:19;}.ant-col-xs-18{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 75%;max-width:75%;}.ant-col-xs-push-18{inset-inline-start:75%;}.ant-col-xs-pull-18{inset-inline-end:75%;}.ant-col-xs-offset-18{margin-inline-start:75%;}.ant-col-xs-order-18{order:18;}.ant-col-xs-17{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 70.83333333333334%;max-width:70.83333333333334%;}.ant-col-xs-push-17{inset-inline-start:70.83333333333334%;}.ant-col-xs-pull-17{inset-inline-end:70.83333333333334%;}.ant-col-xs-offset-17{margin-inline-start:70.83333333333334%;}.ant-col-xs-order-17{order:17;}.ant-col-xs-16{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 66.66666666666666%;max-width:66.66666666666666%;}.ant-col-xs-push-16{inset-inline-start:66.66666666666666%;}.ant-col-xs-pull-16{inset-inline-end:66.66666666666666%;}.ant-col-xs-offset-16{margin-inline-start:66.66666666666666%;}.ant-col-xs-order-16{order:16;}.ant-col-xs-15{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 62.5%;max-width:62.5%;}.ant-col-xs-push-15{inset-inline-start:62.5%;}.ant-col-xs-pull-15{inset-inline-end:62.5%;}.ant-col-xs-offset-15{margin-inline-start:62.5%;}.ant-col-xs-order-15{order:15;}.ant-col-xs-14{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 58.333333333333336%;max-width:58.333333333333336%;}.ant-col-xs-push-14{inset-inline-start:58.333333333333336%;}.ant-col-xs-pull-14{inset-inline-end:58.333333333333336%;}.ant-col-xs-offset-14{margin-inline-start:58.333333333333336%;}.ant-col-xs-order-14{order:14;}.ant-col-xs-13{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 54.166666666666664%;max-width:54.166666666666664%;}.ant-col-xs-push-13{inset-inline-start:54.166666666666664%;}.ant-col-xs-pull-13{inset-inline-end:54.166666666666664%;}.ant-col-xs-offset-13{margin-inline-start:54.166666666666664%;}.ant-col-xs-order-13{order:13;}.ant-col-xs-12{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 50%;max-width:50%;}.ant-col-xs-push-12{inset-inline-start:50%;}.ant-col-xs-pull-12{inset-inline-end:50%;}.ant-col-xs-offset-12{margin-inline-start:50%;}.ant-col-xs-order-12{order:12;}.ant-col-xs-11{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 45.83333333333333%;max-width:45.83333333333333%;}.ant-col-xs-push-11{inset-inline-start:45.83333333333333%;}.ant-col-xs-pull-11{inset-inline-end:45.83333333333333%;}.ant-col-xs-offset-11{margin-inline-start:45.83333333333333%;}.ant-col-xs-order-11{order:11;}.ant-col-xs-10{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 41.66666666666667%;max-width:41.66666666666667%;}.ant-col-xs-push-10{inset-inline-start:41.66666666666667%;}.ant-col-xs-pull-10{inset-inline-end:41.66666666666667%;}.ant-col-xs-offset-10{margin-inline-start:41.66666666666667%;}.ant-col-xs-order-10{order:10;}.ant-col-xs-9{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 37.5%;max-width:37.5%;}.ant-col-xs-push-9{inset-inline-start:37.5%;}.ant-col-xs-pull-9{inset-inline-end:37.5%;}.ant-col-xs-offset-9{margin-inline-start:37.5%;}.ant-col-xs-order-9{order:9;}.ant-col-xs-8{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 33.33333333333333%;max-width:33.33333333333333%;}.ant-col-xs-push-8{inset-inline-start:33.33333333333333%;}.ant-col-xs-pull-8{inset-inline-end:33.33333333333333%;}.ant-col-xs-offset-8{margin-inline-start:33.33333333333333%;}.ant-col-xs-order-8{order:8;}.ant-col-xs-7{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 29.166666666666668%;max-width:29.166666666666668%;}.ant-col-xs-push-7{inset-inline-start:29.166666666666668%;}.ant-col-xs-pull-7{inset-inline-end:29.166666666666668%;}.ant-col-xs-offset-7{margin-inline-start:29.166666666666668%;}.ant-col-xs-order-7{order:7;}.ant-col-xs-6{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 25%;max-width:25%;}.ant-col-xs-push-6{inset-inline-start:25%;}.ant-col-xs-pull-6{inset-inline-end:25%;}.ant-col-xs-offset-6{margin-inline-start:25%;}.ant-col-xs-order-6{order:6;}.ant-col-xs-5{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 20.833333333333336%;max-width:20.833333333333336%;}.ant-col-xs-push-5{inset-inline-start:20.833333333333336%;}.ant-col-xs-pull-5{inset-inline-end:20.833333333333336%;}.ant-col-xs-offset-5{margin-inline-start:20.833333333333336%;}.ant-col-xs-order-5{order:5;}.ant-col-xs-4{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 16.666666666666664%;max-width:16.666666666666664%;}.ant-col-xs-push-4{inset-inline-start:16.666666666666664%;}.ant-col-xs-pull-4{inset-inline-end:16.666666666666664%;}.ant-col-xs-offset-4{margin-inline-start:16.666666666666664%;}.ant-col-xs-order-4{order:4;}.ant-col-xs-3{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 12.5%;max-width:12.5%;}.ant-col-xs-push-3{inset-inline-start:12.5%;}.ant-col-xs-pull-3{inset-inline-end:12.5%;}.ant-col-xs-offset-3{margin-inline-start:12.5%;}.ant-col-xs-order-3{order:3;}.ant-col-xs-2{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 8.333333333333332%;max-width:8.333333333333332%;}.ant-col-xs-push-2{inset-inline-start:8.333333333333332%;}.ant-col-xs-pull-2{inset-inline-end:8.333333333333332%;}.ant-col-xs-offset-2{margin-inline-start:8.333333333333332%;}.ant-col-xs-order-2{order:2;}.ant-col-xs-1{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 4.166666666666666%;max-width:4.166666666666666%;}.ant-col-xs-push-1{inset-inline-start:4.166666666666666%;}.ant-col-xs-pull-1{inset-inline-end:4.166666666666666%;}.ant-col-xs-offset-1{margin-inline-start:4.166666666666666%;}.ant-col-xs-order-1{order:1;}.ant-col-xs-0{display:none;}.ant-col-push-0{inset-inline-start:auto;}.ant-col-pull-0{inset-inline-end:auto;}.ant-col-xs-push-0{inset-inline-start:auto;}.ant-col-xs-pull-0{inset-inline-end:auto;}.ant-col-xs-offset-0{margin-inline-start:0;}.ant-col-xs-order-0{order:0;}.ant-col-xs-flex{flex:var(--ant-col-xs-flex);}@media (min-width: 576px){.ant-col-sm-24{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 100%;max-width:100%;}.ant-col-sm-push-24{inset-inline-start:100%;}.ant-col-sm-pull-24{inset-inline-end:100%;}.ant-col-sm-offset-24{margin-inline-start:100%;}.ant-col-sm-order-24{order:24;}.ant-col-sm-23{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 95.83333333333334%;max-width:95.83333333333334%;}.ant-col-sm-push-23{inset-inline-start:95.83333333333334%;}.ant-col-sm-pull-23{inset-inline-end:95.83333333333334%;}.ant-col-sm-offset-23{margin-inline-start:95.83333333333334%;}.ant-col-sm-order-23{order:23;}.ant-col-sm-22{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 91.66666666666666%;max-width:91.66666666666666%;}.ant-col-sm-push-22{inset-inline-start:91.66666666666666%;}.ant-col-sm-pull-22{inset-inline-end:91.66666666666666%;}.ant-col-sm-offset-22{margin-inline-start:91.66666666666666%;}.ant-col-sm-order-22{order:22;}.ant-col-sm-21{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 87.5%;max-width:87.5%;}.ant-col-sm-push-21{inset-inline-start:87.5%;}.ant-col-sm-pull-21{inset-inline-end:87.5%;}.ant-col-sm-offset-21{margin-inline-start:87.5%;}.ant-col-sm-order-21{order:21;}.ant-col-sm-20{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 83.33333333333334%;max-width:83.33333333333334%;}.ant-col-sm-push-20{inset-inline-start:83.33333333333334%;}.ant-col-sm-pull-20{inset-inline-end:83.33333333333334%;}.ant-col-sm-offset-20{margin-inline-start:83.33333333333334%;}.ant-col-sm-order-20{order:20;}.ant-col-sm-19{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 79.16666666666666%;max-width:79.16666666666666%;}.ant-col-sm-push-19{inset-inline-start:79.16666666666666%;}.ant-col-sm-pull-19{inset-inline-end:79.16666666666666%;}.ant-col-sm-offset-19{margin-inline-start:79.16666666666666%;}.ant-col-sm-order-19{order:19;}.ant-col-sm-18{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 75%;max-width:75%;}.ant-col-sm-push-18{inset-inline-start:75%;}.ant-col-sm-pull-18{inset-inline-end:75%;}.ant-col-sm-offset-18{margin-inline-start:75%;}.ant-col-sm-order-18{order:18;}.ant-col-sm-17{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 70.83333333333334%;max-width:70.83333333333334%;}.ant-col-sm-push-17{inset-inline-start:70.83333333333334%;}.ant-col-sm-pull-17{inset-inline-end:70.83333333333334%;}.ant-col-sm-offset-17{margin-inline-start:70.83333333333334%;}.ant-col-sm-order-17{order:17;}.ant-col-sm-16{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 66.66666666666666%;max-width:66.66666666666666%;}.ant-col-sm-push-16{inset-inline-start:66.66666666666666%;}.ant-col-sm-pull-16{inset-inline-end:66.66666666666666%;}.ant-col-sm-offset-16{margin-inline-start:66.66666666666666%;}.ant-col-sm-order-16{order:16;}.ant-col-sm-15{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 62.5%;max-width:62.5%;}.ant-col-sm-push-15{inset-inline-start:62.5%;}.ant-col-sm-pull-15{inset-inline-end:62.5%;}.ant-col-sm-offset-15{margin-inline-start:62.5%;}.ant-col-sm-order-15{order:15;}.ant-col-sm-14{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 58.333333333333336%;max-width:58.333333333333336%;}.ant-col-sm-push-14{inset-inline-start:58.333333333333336%;}.ant-col-sm-pull-14{inset-inline-end:58.333333333333336%;}.ant-col-sm-offset-14{margin-inline-start:58.333333333333336%;}.ant-col-sm-order-14{order:14;}.ant-col-sm-13{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 54.166666666666664%;max-width:54.166666666666664%;}.ant-col-sm-push-13{inset-inline-start:54.166666666666664%;}.ant-col-sm-pull-13{inset-inline-end:54.166666666666664%;}.ant-col-sm-offset-13{margin-inline-start:54.166666666666664%;}.ant-col-sm-order-13{order:13;}.ant-col-sm-12{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 50%;max-width:50%;}.ant-col-sm-push-12{inset-inline-start:50%;}.ant-col-sm-pull-12{inset-inline-end:50%;}.ant-col-sm-offset-12{margin-inline-start:50%;}.ant-col-sm-order-12{order:12;}.ant-col-sm-11{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 45.83333333333333%;max-width:45.83333333333333%;}.ant-col-sm-push-11{inset-inline-start:45.83333333333333%;}.ant-col-sm-pull-11{inset-inline-end:45.83333333333333%;}.ant-col-sm-offset-11{margin-inline-start:45.83333333333333%;}.ant-col-sm-order-11{order:11;}.ant-col-sm-10{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 41.66666666666667%;max-width:41.66666666666667%;}.ant-col-sm-push-10{inset-inline-start:41.66666666666667%;}.ant-col-sm-pull-10{inset-inline-end:41.66666666666667%;}.ant-col-sm-offset-10{margin-inline-start:41.66666666666667%;}.ant-col-sm-order-10{order:10;}.ant-col-sm-9{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 37.5%;max-width:37.5%;}.ant-col-sm-push-9{inset-inline-start:37.5%;}.ant-col-sm-pull-9{inset-inline-end:37.5%;}.ant-col-sm-offset-9{margin-inline-start:37.5%;}.ant-col-sm-order-9{order:9;}.ant-col-sm-8{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 33.33333333333333%;max-width:33.33333333333333%;}.ant-col-sm-push-8{inset-inline-start:33.33333333333333%;}.ant-col-sm-pull-8{inset-inline-end:33.33333333333333%;}.ant-col-sm-offset-8{margin-inline-start:33.33333333333333%;}.ant-col-sm-order-8{order:8;}.ant-col-sm-7{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 29.166666666666668%;max-width:29.166666666666668%;}.ant-col-sm-push-7{inset-inline-start:29.166666666666668%;}.ant-col-sm-pull-7{inset-inline-end:29.166666666666668%;}.ant-col-sm-offset-7{margin-inline-start:29.166666666666668%;}.ant-col-sm-order-7{order:7;}.ant-col-sm-6{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 25%;max-width:25%;}.ant-col-sm-push-6{inset-inline-start:25%;}.ant-col-sm-pull-6{inset-inline-end:25%;}.ant-col-sm-offset-6{margin-inline-start:25%;}.ant-col-sm-order-6{order:6;}.ant-col-sm-5{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 20.833333333333336%;max-width:20.833333333333336%;}.ant-col-sm-push-5{inset-inline-start:20.833333333333336%;}.ant-col-sm-pull-5{inset-inline-end:20.833333333333336%;}.ant-col-sm-offset-5{margin-inline-start:20.833333333333336%;}.ant-col-sm-order-5{order:5;}.ant-col-sm-4{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 16.666666666666664%;max-width:16.666666666666664%;}.ant-col-sm-push-4{inset-inline-start:16.666666666666664%;}.ant-col-sm-pull-4{inset-inline-end:16.666666666666664%;}.ant-col-sm-offset-4{margin-inline-start:16.666666666666664%;}.ant-col-sm-order-4{order:4;}.ant-col-sm-3{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 12.5%;max-width:12.5%;}.ant-col-sm-push-3{inset-inline-start:12.5%;}.ant-col-sm-pull-3{inset-inline-end:12.5%;}.ant-col-sm-offset-3{margin-inline-start:12.5%;}.ant-col-sm-order-3{order:3;}.ant-col-sm-2{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 8.333333333333332%;max-width:8.333333333333332%;}.ant-col-sm-push-2{inset-inline-start:8.333333333333332%;}.ant-col-sm-pull-2{inset-inline-end:8.333333333333332%;}.ant-col-sm-offset-2{margin-inline-start:8.333333333333332%;}.ant-col-sm-order-2{order:2;}.ant-col-sm-1{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 4.166666666666666%;max-width:4.166666666666666%;}.ant-col-sm-push-1{inset-inline-start:4.166666666666666%;}.ant-col-sm-pull-1{inset-inline-end:4.166666666666666%;}.ant-col-sm-offset-1{margin-inline-start:4.166666666666666%;}.ant-col-sm-order-1{order:1;}.ant-col-sm-0{display:none;}.ant-col-push-0{inset-inline-start:auto;}.ant-col-pull-0{inset-inline-end:auto;}.ant-col-sm-push-0{inset-inline-start:auto;}.ant-col-sm-pull-0{inset-inline-end:auto;}.ant-col-sm-offset-0{margin-inline-start:0;}.ant-col-sm-order-0{order:0;}.ant-col-sm-flex{flex:var(--ant-col-sm-flex);}}@media (min-width: 768px){.ant-col-md-24{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 100%;max-width:100%;}.ant-col-md-push-24{inset-inline-start:100%;}.ant-col-md-pull-24{inset-inline-end:100%;}.ant-col-md-offset-24{margin-inline-start:100%;}.ant-col-md-order-24{order:24;}.ant-col-md-23{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 95.83333333333334%;max-width:95.83333333333334%;}.ant-col-md-push-23{inset-inline-start:95.83333333333334%;}.ant-col-md-pull-23{inset-inline-end:95.83333333333334%;}.ant-col-md-offset-23{margin-inline-start:95.83333333333334%;}.ant-col-md-order-23{order:23;}.ant-col-md-22{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 91.66666666666666%;max-width:91.66666666666666%;}.ant-col-md-push-22{inset-inline-start:91.66666666666666%;}.ant-col-md-pull-22{inset-inline-end:91.66666666666666%;}.ant-col-md-offset-22{margin-inline-start:91.66666666666666%;}.ant-col-md-order-22{order:22;}.ant-col-md-21{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 87.5%;max-width:87.5%;}.ant-col-md-push-21{inset-inline-start:87.5%;}.ant-col-md-pull-21{inset-inline-end:87.5%;}.ant-col-md-offset-21{margin-inline-start:87.5%;}.ant-col-md-order-21{order:21;}.ant-col-md-20{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 83.33333333333334%;max-width:83.33333333333334%;}.ant-col-md-push-20{inset-inline-start:83.33333333333334%;}.ant-col-md-pull-20{inset-inline-end:83.33333333333334%;}.ant-col-md-offset-20{margin-inline-start:83.33333333333334%;}.ant-col-md-order-20{order:20;}.ant-col-md-19{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 79.16666666666666%;max-width:79.16666666666666%;}.ant-col-md-push-19{inset-inline-start:79.16666666666666%;}.ant-col-md-pull-19{inset-inline-end:79.16666666666666%;}.ant-col-md-offset-19{margin-inline-start:79.16666666666666%;}.ant-col-md-order-19{order:19;}.ant-col-md-18{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 75%;max-width:75%;}.ant-col-md-push-18{inset-inline-start:75%;}.ant-col-md-pull-18{inset-inline-end:75%;}.ant-col-md-offset-18{margin-inline-start:75%;}.ant-col-md-order-18{order:18;}.ant-col-md-17{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 70.83333333333334%;max-width:70.83333333333334%;}.ant-col-md-push-17{inset-inline-start:70.83333333333334%;}.ant-col-md-pull-17{inset-inline-end:70.83333333333334%;}.ant-col-md-offset-17{margin-inline-start:70.83333333333334%;}.ant-col-md-order-17{order:17;}.ant-col-md-16{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 66.66666666666666%;max-width:66.66666666666666%;}.ant-col-md-push-16{inset-inline-start:66.66666666666666%;}.ant-col-md-pull-16{inset-inline-end:66.66666666666666%;}.ant-col-md-offset-16{margin-inline-start:66.66666666666666%;}.ant-col-md-order-16{order:16;}.ant-col-md-15{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 62.5%;max-width:62.5%;}.ant-col-md-push-15{inset-inline-start:62.5%;}.ant-col-md-pull-15{inset-inline-end:62.5%;}.ant-col-md-offset-15{margin-inline-start:62.5%;}.ant-col-md-order-15{order:15;}.ant-col-md-14{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 58.333333333333336%;max-width:58.333333333333336%;}.ant-col-md-push-14{inset-inline-start:58.333333333333336%;}.ant-col-md-pull-14{inset-inline-end:58.333333333333336%;}.ant-col-md-offset-14{margin-inline-start:58.333333333333336%;}.ant-col-md-order-14{order:14;}.ant-col-md-13{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 54.166666666666664%;max-width:54.166666666666664%;}.ant-col-md-push-13{inset-inline-start:54.166666666666664%;}.ant-col-md-pull-13{inset-inline-end:54.166666666666664%;}.ant-col-md-offset-13{margin-inline-start:54.166666666666664%;}.ant-col-md-order-13{order:13;}.ant-col-md-12{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 50%;max-width:50%;}.ant-col-md-push-12{inset-inline-start:50%;}.ant-col-md-pull-12{inset-inline-end:50%;}.ant-col-md-offset-12{margin-inline-start:50%;}.ant-col-md-order-12{order:12;}.ant-col-md-11{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 45.83333333333333%;max-width:45.83333333333333%;}.ant-col-md-push-11{inset-inline-start:45.83333333333333%;}.ant-col-md-pull-11{inset-inline-end:45.83333333333333%;}.ant-col-md-offset-11{margin-inline-start:45.83333333333333%;}.ant-col-md-order-11{order:11;}.ant-col-md-10{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 41.66666666666667%;max-width:41.66666666666667%;}.ant-col-md-push-10{inset-inline-start:41.66666666666667%;}.ant-col-md-pull-10{inset-inline-end:41.66666666666667%;}.ant-col-md-offset-10{margin-inline-start:41.66666666666667%;}.ant-col-md-order-10{order:10;}.ant-col-md-9{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 37.5%;max-width:37.5%;}.ant-col-md-push-9{inset-inline-start:37.5%;}.ant-col-md-pull-9{inset-inline-end:37.5%;}.ant-col-md-offset-9{margin-inline-start:37.5%;}.ant-col-md-order-9{order:9;}.ant-col-md-8{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 33.33333333333333%;max-width:33.33333333333333%;}.ant-col-md-push-8{inset-inline-start:33.33333333333333%;}.ant-col-md-pull-8{inset-inline-end:33.33333333333333%;}.ant-col-md-offset-8{margin-inline-start:33.33333333333333%;}.ant-col-md-order-8{order:8;}.ant-col-md-7{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 29.166666666666668%;max-width:29.166666666666668%;}.ant-col-md-push-7{inset-inline-start:29.166666666666668%;}.ant-col-md-pull-7{inset-inline-end:29.166666666666668%;}.ant-col-md-offset-7{margin-inline-start:29.166666666666668%;}.ant-col-md-order-7{order:7;}.ant-col-md-6{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 25%;max-width:25%;}.ant-col-md-push-6{inset-inline-start:25%;}.ant-col-md-pull-6{inset-inline-end:25%;}.ant-col-md-offset-6{margin-inline-start:25%;}.ant-col-md-order-6{order:6;}.ant-col-md-5{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 20.833333333333336%;max-width:20.833333333333336%;}.ant-col-md-push-5{inset-inline-start:20.833333333333336%;}.ant-col-md-pull-5{inset-inline-end:20.833333333333336%;}.ant-col-md-offset-5{margin-inline-start:20.833333333333336%;}.ant-col-md-order-5{order:5;}.ant-col-md-4{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 16.666666666666664%;max-width:16.666666666666664%;}.ant-col-md-push-4{inset-inline-start:16.666666666666664%;}.ant-col-md-pull-4{inset-inline-end:16.666666666666664%;}.ant-col-md-offset-4{margin-inline-start:16.666666666666664%;}.ant-col-md-order-4{order:4;}.ant-col-md-3{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 12.5%;max-width:12.5%;}.ant-col-md-push-3{inset-inline-start:12.5%;}.ant-col-md-pull-3{inset-inline-end:12.5%;}.ant-col-md-offset-3{margin-inline-start:12.5%;}.ant-col-md-order-3{order:3;}.ant-col-md-2{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 8.333333333333332%;max-width:8.333333333333332%;}.ant-col-md-push-2{inset-inline-start:8.333333333333332%;}.ant-col-md-pull-2{inset-inline-end:8.333333333333332%;}.ant-col-md-offset-2{margin-inline-start:8.333333333333332%;}.ant-col-md-order-2{order:2;}.ant-col-md-1{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 4.166666666666666%;max-width:4.166666666666666%;}.ant-col-md-push-1{inset-inline-start:4.166666666666666%;}.ant-col-md-pull-1{inset-inline-end:4.166666666666666%;}.ant-col-md-offset-1{margin-inline-start:4.166666666666666%;}.ant-col-md-order-1{order:1;}.ant-col-md-0{display:none;}.ant-col-push-0{inset-inline-start:auto;}.ant-col-pull-0{inset-inline-end:auto;}.ant-col-md-push-0{inset-inline-start:auto;}.ant-col-md-pull-0{inset-inline-end:auto;}.ant-col-md-offset-0{margin-inline-start:0;}.ant-col-md-order-0{order:0;}.ant-col-md-flex{flex:var(--ant-col-md-flex);}}@media (min-width: 992px){.ant-col-lg-24{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 100%;max-width:100%;}.ant-col-lg-push-24{inset-inline-start:100%;}.ant-col-lg-pull-24{inset-inline-end:100%;}.ant-col-lg-offset-24{margin-inline-start:100%;}.ant-col-lg-order-24{order:24;}.ant-col-lg-23{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 95.83333333333334%;max-width:95.83333333333334%;}.ant-col-lg-push-23{inset-inline-start:95.83333333333334%;}.ant-col-lg-pull-23{inset-inline-end:95.83333333333334%;}.ant-col-lg-offset-23{margin-inline-start:95.83333333333334%;}.ant-col-lg-order-23{order:23;}.ant-col-lg-22{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 91.66666666666666%;max-width:91.66666666666666%;}.ant-col-lg-push-22{inset-inline-start:91.66666666666666%;}.ant-col-lg-pull-22{inset-inline-end:91.66666666666666%;}.ant-col-lg-offset-22{margin-inline-start:91.66666666666666%;}.ant-col-lg-order-22{order:22;}.ant-col-lg-21{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 87.5%;max-width:87.5%;}.ant-col-lg-push-21{inset-inline-start:87.5%;}.ant-col-lg-pull-21{inset-inline-end:87.5%;}.ant-col-lg-offset-21{margin-inline-start:87.5%;}.ant-col-lg-order-21{order:21;}.ant-col-lg-20{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 83.33333333333334%;max-width:83.33333333333334%;}.ant-col-lg-push-20{inset-inline-start:83.33333333333334%;}.ant-col-lg-pull-20{inset-inline-end:83.33333333333334%;}.ant-col-lg-offset-20{margin-inline-start:83.33333333333334%;}.ant-col-lg-order-20{order:20;}.ant-col-lg-19{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 79.16666666666666%;max-width:79.16666666666666%;}.ant-col-lg-push-19{inset-inline-start:79.16666666666666%;}.ant-col-lg-pull-19{inset-inline-end:79.16666666666666%;}.ant-col-lg-offset-19{margin-inline-start:79.16666666666666%;}.ant-col-lg-order-19{order:19;}.ant-col-lg-18{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 75%;max-width:75%;}.ant-col-lg-push-18{inset-inline-start:75%;}.ant-col-lg-pull-18{inset-inline-end:75%;}.ant-col-lg-offset-18{margin-inline-start:75%;}.ant-col-lg-order-18{order:18;}.ant-col-lg-17{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 70.83333333333334%;max-width:70.83333333333334%;}.ant-col-lg-push-17{inset-inline-start:70.83333333333334%;}.ant-col-lg-pull-17{inset-inline-end:70.83333333333334%;}.ant-col-lg-offset-17{margin-inline-start:70.83333333333334%;}.ant-col-lg-order-17{order:17;}.ant-col-lg-16{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 66.66666666666666%;max-width:66.66666666666666%;}.ant-col-lg-push-16{inset-inline-start:66.66666666666666%;}.ant-col-lg-pull-16{inset-inline-end:66.66666666666666%;}.ant-col-lg-offset-16{margin-inline-start:66.66666666666666%;}.ant-col-lg-order-16{order:16;}.ant-col-lg-15{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 62.5%;max-width:62.5%;}.ant-col-lg-push-15{inset-inline-start:62.5%;}.ant-col-lg-pull-15{inset-inline-end:62.5%;}.ant-col-lg-offset-15{margin-inline-start:62.5%;}.ant-col-lg-order-15{order:15;}.ant-col-lg-14{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 58.333333333333336%;max-width:58.333333333333336%;}.ant-col-lg-push-14{inset-inline-start:58.333333333333336%;}.ant-col-lg-pull-14{inset-inline-end:58.333333333333336%;}.ant-col-lg-offset-14{margin-inline-start:58.333333333333336%;}.ant-col-lg-order-14{order:14;}.ant-col-lg-13{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 54.166666666666664%;max-width:54.166666666666664%;}.ant-col-lg-push-13{inset-inline-start:54.166666666666664%;}.ant-col-lg-pull-13{inset-inline-end:54.166666666666664%;}.ant-col-lg-offset-13{margin-inline-start:54.166666666666664%;}.ant-col-lg-order-13{order:13;}.ant-col-lg-12{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 50%;max-width:50%;}.ant-col-lg-push-12{inset-inline-start:50%;}.ant-col-lg-pull-12{inset-inline-end:50%;}.ant-col-lg-offset-12{margin-inline-start:50%;}.ant-col-lg-order-12{order:12;}.ant-col-lg-11{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 45.83333333333333%;max-width:45.83333333333333%;}.ant-col-lg-push-11{inset-inline-start:45.83333333333333%;}.ant-col-lg-pull-11{inset-inline-end:45.83333333333333%;}.ant-col-lg-offset-11{margin-inline-start:45.83333333333333%;}.ant-col-lg-order-11{order:11;}.ant-col-lg-10{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 41.66666666666667%;max-width:41.66666666666667%;}.ant-col-lg-push-10{inset-inline-start:41.66666666666667%;}.ant-col-lg-pull-10{inset-inline-end:41.66666666666667%;}.ant-col-lg-offset-10{margin-inline-start:41.66666666666667%;}.ant-col-lg-order-10{order:10;}.ant-col-lg-9{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 37.5%;max-width:37.5%;}.ant-col-lg-push-9{inset-inline-start:37.5%;}.ant-col-lg-pull-9{inset-inline-end:37.5%;}.ant-col-lg-offset-9{margin-inline-start:37.5%;}.ant-col-lg-order-9{order:9;}.ant-col-lg-8{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 33.33333333333333%;max-width:33.33333333333333%;}.ant-col-lg-push-8{inset-inline-start:33.33333333333333%;}.ant-col-lg-pull-8{inset-inline-end:33.33333333333333%;}.ant-col-lg-offset-8{margin-inline-start:33.33333333333333%;}.ant-col-lg-order-8{order:8;}.ant-col-lg-7{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 29.166666666666668%;max-width:29.166666666666668%;}.ant-col-lg-push-7{inset-inline-start:29.166666666666668%;}.ant-col-lg-pull-7{inset-inline-end:29.166666666666668%;}.ant-col-lg-offset-7{margin-inline-start:29.166666666666668%;}.ant-col-lg-order-7{order:7;}.ant-col-lg-6{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 25%;max-width:25%;}.ant-col-lg-push-6{inset-inline-start:25%;}.ant-col-lg-pull-6{inset-inline-end:25%;}.ant-col-lg-offset-6{margin-inline-start:25%;}.ant-col-lg-order-6{order:6;}.ant-col-lg-5{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 20.833333333333336%;max-width:20.833333333333336%;}.ant-col-lg-push-5{inset-inline-start:20.833333333333336%;}.ant-col-lg-pull-5{inset-inline-end:20.833333333333336%;}.ant-col-lg-offset-5{margin-inline-start:20.833333333333336%;}.ant-col-lg-order-5{order:5;}.ant-col-lg-4{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 16.666666666666664%;max-width:16.666666666666664%;}.ant-col-lg-push-4{inset-inline-start:16.666666666666664%;}.ant-col-lg-pull-4{inset-inline-end:16.666666666666664%;}.ant-col-lg-offset-4{margin-inline-start:16.666666666666664%;}.ant-col-lg-order-4{order:4;}.ant-col-lg-3{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 12.5%;max-width:12.5%;}.ant-col-lg-push-3{inset-inline-start:12.5%;}.ant-col-lg-pull-3{inset-inline-end:12.5%;}.ant-col-lg-offset-3{margin-inline-start:12.5%;}.ant-col-lg-order-3{order:3;}.ant-col-lg-2{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 8.333333333333332%;max-width:8.333333333333332%;}.ant-col-lg-push-2{inset-inline-start:8.333333333333332%;}.ant-col-lg-pull-2{inset-inline-end:8.333333333333332%;}.ant-col-lg-offset-2{margin-inline-start:8.333333333333332%;}.ant-col-lg-order-2{order:2;}.ant-col-lg-1{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 4.166666666666666%;max-width:4.166666666666666%;}.ant-col-lg-push-1{inset-inline-start:4.166666666666666%;}.ant-col-lg-pull-1{inset-inline-end:4.166666666666666%;}.ant-col-lg-offset-1{margin-inline-start:4.166666666666666%;}.ant-col-lg-order-1{order:1;}.ant-col-lg-0{display:none;}.ant-col-push-0{inset-inline-start:auto;}.ant-col-pull-0{inset-inline-end:auto;}.ant-col-lg-push-0{inset-inline-start:auto;}.ant-col-lg-pull-0{inset-inline-end:auto;}.ant-col-lg-offset-0{margin-inline-start:0;}.ant-col-lg-order-0{order:0;}.ant-col-lg-flex{flex:var(--ant-col-lg-flex);}}@media (min-width: 1200px){.ant-col-xl-24{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 100%;max-width:100%;}.ant-col-xl-push-24{inset-inline-start:100%;}.ant-col-xl-pull-24{inset-inline-end:100%;}.ant-col-xl-offset-24{margin-inline-start:100%;}.ant-col-xl-order-24{order:24;}.ant-col-xl-23{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 95.83333333333334%;max-width:95.83333333333334%;}.ant-col-xl-push-23{inset-inline-start:95.83333333333334%;}.ant-col-xl-pull-23{inset-inline-end:95.83333333333334%;}.ant-col-xl-offset-23{margin-inline-start:95.83333333333334%;}.ant-col-xl-order-23{order:23;}.ant-col-xl-22{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 91.66666666666666%;max-width:91.66666666666666%;}.ant-col-xl-push-22{inset-inline-start:91.66666666666666%;}.ant-col-xl-pull-22{inset-inline-end:91.66666666666666%;}.ant-col-xl-offset-22{margin-inline-start:91.66666666666666%;}.ant-col-xl-order-22{order:22;}.ant-col-xl-21{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 87.5%;max-width:87.5%;}.ant-col-xl-push-21{inset-inline-start:87.5%;}.ant-col-xl-pull-21{inset-inline-end:87.5%;}.ant-col-xl-offset-21{margin-inline-start:87.5%;}.ant-col-xl-order-21{order:21;}.ant-col-xl-20{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 83.33333333333334%;max-width:83.33333333333334%;}.ant-col-xl-push-20{inset-inline-start:83.33333333333334%;}.ant-col-xl-pull-20{inset-inline-end:83.33333333333334%;}.ant-col-xl-offset-20{margin-inline-start:83.33333333333334%;}.ant-col-xl-order-20{order:20;}.ant-col-xl-19{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 79.16666666666666%;max-width:79.16666666666666%;}.ant-col-xl-push-19{inset-inline-start:79.16666666666666%;}.ant-col-xl-pull-19{inset-inline-end:79.16666666666666%;}.ant-col-xl-offset-19{margin-inline-start:79.16666666666666%;}.ant-col-xl-order-19{order:19;}.ant-col-xl-18{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 75%;max-width:75%;}.ant-col-xl-push-18{inset-inline-start:75%;}.ant-col-xl-pull-18{inset-inline-end:75%;}.ant-col-xl-offset-18{margin-inline-start:75%;}.ant-col-xl-order-18{order:18;}.ant-col-xl-17{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 70.83333333333334%;max-width:70.83333333333334%;}.ant-col-xl-push-17{inset-inline-start:70.83333333333334%;}.ant-col-xl-pull-17{inset-inline-end:70.83333333333334%;}.ant-col-xl-offset-17{margin-inline-start:70.83333333333334%;}.ant-col-xl-order-17{order:17;}.ant-col-xl-16{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 66.66666666666666%;max-width:66.66666666666666%;}.ant-col-xl-push-16{inset-inline-start:66.66666666666666%;}.ant-col-xl-pull-16{inset-inline-end:66.66666666666666%;}.ant-col-xl-offset-16{margin-inline-start:66.66666666666666%;}.ant-col-xl-order-16{order:16;}.ant-col-xl-15{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 62.5%;max-width:62.5%;}.ant-col-xl-push-15{inset-inline-start:62.5%;}.ant-col-xl-pull-15{inset-inline-end:62.5%;}.ant-col-xl-offset-15{margin-inline-start:62.5%;}.ant-col-xl-order-15{order:15;}.ant-col-xl-14{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 58.333333333333336%;max-width:58.333333333333336%;}.ant-col-xl-push-14{inset-inline-start:58.333333333333336%;}.ant-col-xl-pull-14{inset-inline-end:58.333333333333336%;}.ant-col-xl-offset-14{margin-inline-start:58.333333333333336%;}.ant-col-xl-order-14{order:14;}.ant-col-xl-13{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 54.166666666666664%;max-width:54.166666666666664%;}.ant-col-xl-push-13{inset-inline-start:54.166666666666664%;}.ant-col-xl-pull-13{inset-inline-end:54.166666666666664%;}.ant-col-xl-offset-13{margin-inline-start:54.166666666666664%;}.ant-col-xl-order-13{order:13;}.ant-col-xl-12{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 50%;max-width:50%;}.ant-col-xl-push-12{inset-inline-start:50%;}.ant-col-xl-pull-12{inset-inline-end:50%;}.ant-col-xl-offset-12{margin-inline-start:50%;}.ant-col-xl-order-12{order:12;}.ant-col-xl-11{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 45.83333333333333%;max-width:45.83333333333333%;}.ant-col-xl-push-11{inset-inline-start:45.83333333333333%;}.ant-col-xl-pull-11{inset-inline-end:45.83333333333333%;}.ant-col-xl-offset-11{margin-inline-start:45.83333333333333%;}.ant-col-xl-order-11{order:11;}.ant-col-xl-10{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 41.66666666666667%;max-width:41.66666666666667%;}.ant-col-xl-push-10{inset-inline-start:41.66666666666667%;}.ant-col-xl-pull-10{inset-inline-end:41.66666666666667%;}.ant-col-xl-offset-10{margin-inline-start:41.66666666666667%;}.ant-col-xl-order-10{order:10;}.ant-col-xl-9{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 37.5%;max-width:37.5%;}.ant-col-xl-push-9{inset-inline-start:37.5%;}.ant-col-xl-pull-9{inset-inline-end:37.5%;}.ant-col-xl-offset-9{margin-inline-start:37.5%;}.ant-col-xl-order-9{order:9;}.ant-col-xl-8{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 33.33333333333333%;max-width:33.33333333333333%;}.ant-col-xl-push-8{inset-inline-start:33.33333333333333%;}.ant-col-xl-pull-8{inset-inline-end:33.33333333333333%;}.ant-col-xl-offset-8{margin-inline-start:33.33333333333333%;}.ant-col-xl-order-8{order:8;}.ant-col-xl-7{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 29.166666666666668%;max-width:29.166666666666668%;}.ant-col-xl-push-7{inset-inline-start:29.166666666666668%;}.ant-col-xl-pull-7{inset-inline-end:29.166666666666668%;}.ant-col-xl-offset-7{margin-inline-start:29.166666666666668%;}.ant-col-xl-order-7{order:7;}.ant-col-xl-6{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 25%;max-width:25%;}.ant-col-xl-push-6{inset-inline-start:25%;}.ant-col-xl-pull-6{inset-inline-end:25%;}.ant-col-xl-offset-6{margin-inline-start:25%;}.ant-col-xl-order-6{order:6;}.ant-col-xl-5{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 20.833333333333336%;max-width:20.833333333333336%;}.ant-col-xl-push-5{inset-inline-start:20.833333333333336%;}.ant-col-xl-pull-5{inset-inline-end:20.833333333333336%;}.ant-col-xl-offset-5{margin-inline-start:20.833333333333336%;}.ant-col-xl-order-5{order:5;}.ant-col-xl-4{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 16.666666666666664%;max-width:16.666666666666664%;}.ant-col-xl-push-4{inset-inline-start:16.666666666666664%;}.ant-col-xl-pull-4{inset-inline-end:16.666666666666664%;}.ant-col-xl-offset-4{margin-inline-start:16.666666666666664%;}.ant-col-xl-order-4{order:4;}.ant-col-xl-3{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 12.5%;max-width:12.5%;}.ant-col-xl-push-3{inset-inline-start:12.5%;}.ant-col-xl-pull-3{inset-inline-end:12.5%;}.ant-col-xl-offset-3{margin-inline-start:12.5%;}.ant-col-xl-order-3{order:3;}.ant-col-xl-2{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 8.333333333333332%;max-width:8.333333333333332%;}.ant-col-xl-push-2{inset-inline-start:8.333333333333332%;}.ant-col-xl-pull-2{inset-inline-end:8.333333333333332%;}.ant-col-xl-offset-2{margin-inline-start:8.333333333333332%;}.ant-col-xl-order-2{order:2;}.ant-col-xl-1{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 4.166666666666666%;max-width:4.166666666666666%;}.ant-col-xl-push-1{inset-inline-start:4.166666666666666%;}.ant-col-xl-pull-1{inset-inline-end:4.166666666666666%;}.ant-col-xl-offset-1{margin-inline-start:4.166666666666666%;}.ant-col-xl-order-1{order:1;}.ant-col-xl-0{display:none;}.ant-col-push-0{inset-inline-start:auto;}.ant-col-pull-0{inset-inline-end:auto;}.ant-col-xl-push-0{inset-inline-start:auto;}.ant-col-xl-pull-0{inset-inline-end:auto;}.ant-col-xl-offset-0{margin-inline-start:0;}.ant-col-xl-order-0{order:0;}.ant-col-xl-flex{flex:var(--ant-col-xl-flex);}}@media (min-width: 1600px){.ant-col-xxl-24{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 100%;max-width:100%;}.ant-col-xxl-push-24{inset-inline-start:100%;}.ant-col-xxl-pull-24{inset-inline-end:100%;}.ant-col-xxl-offset-24{margin-inline-start:100%;}.ant-col-xxl-order-24{order:24;}.ant-col-xxl-23{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 95.83333333333334%;max-width:95.83333333333334%;}.ant-col-xxl-push-23{inset-inline-start:95.83333333333334%;}.ant-col-xxl-pull-23{inset-inline-end:95.83333333333334%;}.ant-col-xxl-offset-23{margin-inline-start:95.83333333333334%;}.ant-col-xxl-order-23{order:23;}.ant-col-xxl-22{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 91.66666666666666%;max-width:91.66666666666666%;}.ant-col-xxl-push-22{inset-inline-start:91.66666666666666%;}.ant-col-xxl-pull-22{inset-inline-end:91.66666666666666%;}.ant-col-xxl-offset-22{margin-inline-start:91.66666666666666%;}.ant-col-xxl-order-22{order:22;}.ant-col-xxl-21{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 87.5%;max-width:87.5%;}.ant-col-xxl-push-21{inset-inline-start:87.5%;}.ant-col-xxl-pull-21{inset-inline-end:87.5%;}.ant-col-xxl-offset-21{margin-inline-start:87.5%;}.ant-col-xxl-order-21{order:21;}.ant-col-xxl-20{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 83.33333333333334%;max-width:83.33333333333334%;}.ant-col-xxl-push-20{inset-inline-start:83.33333333333334%;}.ant-col-xxl-pull-20{inset-inline-end:83.33333333333334%;}.ant-col-xxl-offset-20{margin-inline-start:83.33333333333334%;}.ant-col-xxl-order-20{order:20;}.ant-col-xxl-19{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 79.16666666666666%;max-width:79.16666666666666%;}.ant-col-xxl-push-19{inset-inline-start:79.16666666666666%;}.ant-col-xxl-pull-19{inset-inline-end:79.16666666666666%;}.ant-col-xxl-offset-19{margin-inline-start:79.16666666666666%;}.ant-col-xxl-order-19{order:19;}.ant-col-xxl-18{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 75%;max-width:75%;}.ant-col-xxl-push-18{inset-inline-start:75%;}.ant-col-xxl-pull-18{inset-inline-end:75%;}.ant-col-xxl-offset-18{margin-inline-start:75%;}.ant-col-xxl-order-18{order:18;}.ant-col-xxl-17{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 70.83333333333334%;max-width:70.83333333333334%;}.ant-col-xxl-push-17{inset-inline-start:70.83333333333334%;}.ant-col-xxl-pull-17{inset-inline-end:70.83333333333334%;}.ant-col-xxl-offset-17{margin-inline-start:70.83333333333334%;}.ant-col-xxl-order-17{order:17;}.ant-col-xxl-16{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 66.66666666666666%;max-width:66.66666666666666%;}.ant-col-xxl-push-16{inset-inline-start:66.66666666666666%;}.ant-col-xxl-pull-16{inset-inline-end:66.66666666666666%;}.ant-col-xxl-offset-16{margin-inline-start:66.66666666666666%;}.ant-col-xxl-order-16{order:16;}.ant-col-xxl-15{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 62.5%;max-width:62.5%;}.ant-col-xxl-push-15{inset-inline-start:62.5%;}.ant-col-xxl-pull-15{inset-inline-end:62.5%;}.ant-col-xxl-offset-15{margin-inline-start:62.5%;}.ant-col-xxl-order-15{order:15;}.ant-col-xxl-14{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 58.333333333333336%;max-width:58.333333333333336%;}.ant-col-xxl-push-14{inset-inline-start:58.333333333333336%;}.ant-col-xxl-pull-14{inset-inline-end:58.333333333333336%;}.ant-col-xxl-offset-14{margin-inline-start:58.333333333333336%;}.ant-col-xxl-order-14{order:14;}.ant-col-xxl-13{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 54.166666666666664%;max-width:54.166666666666664%;}.ant-col-xxl-push-13{inset-inline-start:54.166666666666664%;}.ant-col-xxl-pull-13{inset-inline-end:54.166666666666664%;}.ant-col-xxl-offset-13{margin-inline-start:54.166666666666664%;}.ant-col-xxl-order-13{order:13;}.ant-col-xxl-12{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 50%;max-width:50%;}.ant-col-xxl-push-12{inset-inline-start:50%;}.ant-col-xxl-pull-12{inset-inline-end:50%;}.ant-col-xxl-offset-12{margin-inline-start:50%;}.ant-col-xxl-order-12{order:12;}.ant-col-xxl-11{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 45.83333333333333%;max-width:45.83333333333333%;}.ant-col-xxl-push-11{inset-inline-start:45.83333333333333%;}.ant-col-xxl-pull-11{inset-inline-end:45.83333333333333%;}.ant-col-xxl-offset-11{margin-inline-start:45.83333333333333%;}.ant-col-xxl-order-11{order:11;}.ant-col-xxl-10{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 41.66666666666667%;max-width:41.66666666666667%;}.ant-col-xxl-push-10{inset-inline-start:41.66666666666667%;}.ant-col-xxl-pull-10{inset-inline-end:41.66666666666667%;}.ant-col-xxl-offset-10{margin-inline-start:41.66666666666667%;}.ant-col-xxl-order-10{order:10;}.ant-col-xxl-9{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 37.5%;max-width:37.5%;}.ant-col-xxl-push-9{inset-inline-start:37.5%;}.ant-col-xxl-pull-9{inset-inline-end:37.5%;}.ant-col-xxl-offset-9{margin-inline-start:37.5%;}.ant-col-xxl-order-9{order:9;}.ant-col-xxl-8{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 33.33333333333333%;max-width:33.33333333333333%;}.ant-col-xxl-push-8{inset-inline-start:33.33333333333333%;}.ant-col-xxl-pull-8{inset-inline-end:33.33333333333333%;}.ant-col-xxl-offset-8{margin-inline-start:33.33333333333333%;}.ant-col-xxl-order-8{order:8;}.ant-col-xxl-7{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 29.166666666666668%;max-width:29.166666666666668%;}.ant-col-xxl-push-7{inset-inline-start:29.166666666666668%;}.ant-col-xxl-pull-7{inset-inline-end:29.166666666666668%;}.ant-col-xxl-offset-7{margin-inline-start:29.166666666666668%;}.ant-col-xxl-order-7{order:7;}.ant-col-xxl-6{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 25%;max-width:25%;}.ant-col-xxl-push-6{inset-inline-start:25%;}.ant-col-xxl-pull-6{inset-inline-end:25%;}.ant-col-xxl-offset-6{margin-inline-start:25%;}.ant-col-xxl-order-6{order:6;}.ant-col-xxl-5{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 20.833333333333336%;max-width:20.833333333333336%;}.ant-col-xxl-push-5{inset-inline-start:20.833333333333336%;}.ant-col-xxl-pull-5{inset-inline-end:20.833333333333336%;}.ant-col-xxl-offset-5{margin-inline-start:20.833333333333336%;}.ant-col-xxl-order-5{order:5;}.ant-col-xxl-4{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 16.666666666666664%;max-width:16.666666666666664%;}.ant-col-xxl-push-4{inset-inline-start:16.666666666666664%;}.ant-col-xxl-pull-4{inset-inline-end:16.666666666666664%;}.ant-col-xxl-offset-4{margin-inline-start:16.666666666666664%;}.ant-col-xxl-order-4{order:4;}.ant-col-xxl-3{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 12.5%;max-width:12.5%;}.ant-col-xxl-push-3{inset-inline-start:12.5%;}.ant-col-xxl-pull-3{inset-inline-end:12.5%;}.ant-col-xxl-offset-3{margin-inline-start:12.5%;}.ant-col-xxl-order-3{order:3;}.ant-col-xxl-2{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 8.333333333333332%;max-width:8.333333333333332%;}.ant-col-xxl-push-2{inset-inline-start:8.333333333333332%;}.ant-col-xxl-pull-2{inset-inline-end:8.333333333333332%;}.ant-col-xxl-offset-2{margin-inline-start:8.333333333333332%;}.ant-col-xxl-order-2{order:2;}.ant-col-xxl-1{--ant-display:block;display:block;display:var(--ant-display);flex:0 0 4.166666666666666%;max-width:4.166666666666666%;}.ant-col-xxl-push-1{inset-inline-start:4.166666666666666%;}.ant-col-xxl-pull-1{inset-inline-end:4.166666666666666%;}.ant-col-xxl-offset-1{margin-inline-start:4.166666666666666%;}.ant-col-xxl-order-1{order:1;}.ant-col-xxl-0{display:none;}.ant-col-push-0{inset-inline-start:auto;}.ant-col-pull-0{inset-inline-end:auto;}.ant-col-xxl-push-0{inset-inline-start:auto;}.ant-col-xxl-pull-0{inset-inline-end:auto;}.ant-col-xxl-offset-0{margin-inline-start:0;}.ant-col-xxl-order-0{order:0;}.ant-col-xxl-flex{flex:var(--ant-col-xxl-flex);}}.ant-menu-css-var{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-menu-css-var::before,.ant-menu-css-var::after{box-sizing:border-box;}.ant-menu-css-var [class^="ant-menu"],.ant-menu-css-var [class*=" ant-menu"]{box-sizing:border-box;}.ant-menu-css-var [class^="ant-menu"]::before,.ant-menu-css-var [class*=" ant-menu"]::before,.ant-menu-css-var [class^="ant-menu"]::after,.ant-menu-css-var [class*=" ant-menu"]::after{box-sizing:border-box;}.ant-menu::before{display:table;content:"";}.ant-menu::after{display:table;clear:both;content:"";}.ant-menu-hidden{display:none;}.ant-menu-submenu-hidden{display:none;}.ant-menu{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:0;list-style:none;font-family:var(--ant-font-family);margin-bottom:0;padding-inline-start:0;outline:none;transition:width var(--ant-motion-duration-slow) cubic-bezier(0.2, 0, 0, 1) 0s;}.ant-menu::before{display:table;content:"";}.ant-menu::after{display:table;clear:both;content:"";}.ant-menu ul,.ant-menu ol{margin:0;padding:0;list-style:none;}.ant-menu-overflow{display:flex;}.ant-menu-overflow .ant-menu-item{flex:none;}.ant-menu .ant-menu-item,.ant-menu .ant-menu-submenu,.ant-menu .ant-menu-submenu-title{border-radius:var(--ant-menu-item-border-radius);}.ant-menu .ant-menu-item-group-title{padding:var(--ant-padding-xs) var(--ant-padding);font-size:var(--ant-menu-group-title-font-size);line-height:var(--ant-menu-group-title-line-height);transition:all var(--ant-motion-duration-slow);}.ant-menu-horizontal .ant-menu-submenu{transition:border-color var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),background var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out);}.ant-menu .ant-menu-submenu,.ant-menu .ant-menu-submenu-inline{transition:border-color var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),background var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),padding var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out);}.ant-menu .ant-menu-submenu .ant-menu-sub{cursor:initial;transition:background var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),padding var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out);}.ant-menu .ant-menu-title-content{transition:color var(--ant-motion-duration-slow);}.ant-menu .ant-menu-title-content-with-extra{display:inline-flex;align-items:center;width:100%;}.ant-menu .ant-menu-title-content >.ant-typography-ellipsis-single-line{display:inline;vertical-align:unset;}.ant-menu .ant-menu-title-content .ant-menu-item-extra{margin-inline-start:auto;padding-inline-start:var(--ant-padding);}.ant-menu .ant-menu-item a::before{position:absolute;inset:0;background-color:transparent;content:"";}.ant-menu .ant-menu-item-divider{overflow:hidden;line-height:0;border-color:var(--ant-color-split);border-style:var(--ant-line-type);border-width:0;border-top-width:var(--ant-line-width);margin-block:var(--ant-line-width);padding:0;}.ant-menu .ant-menu-item-divider-dashed{border-style:dashed;}.ant-menu .ant-menu-item,.ant-menu .ant-menu-submenu-title{position:relative;display:block;margin:0;white-space:nowrap;cursor:pointer;transition:border-color var(--ant-motion-duration-slow),background var(--ant-motion-duration-slow),padding calc(var(--ant-motion-duration-slow) + 0.1s) var(--ant-motion-ease-in-out);}.ant-menu .ant-menu-item .ant-menu-item-icon,.ant-menu .ant-menu-submenu-title .ant-menu-item-icon,.ant-menu .ant-menu-item .anticon,.ant-menu .ant-menu-submenu-title .anticon{min-width:var(--ant-menu-icon-size);font-size:var(--ant-menu-icon-size);transition:font-size var(--ant-motion-duration-mid) var(--ant-motion-ease-out),margin var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),color var(--ant-motion-duration-slow);}.ant-menu .ant-menu-item .ant-menu-item-icon +span,.ant-menu .ant-menu-submenu-title .ant-menu-item-icon +span,.ant-menu .ant-menu-item .anticon +span,.ant-menu .ant-menu-submenu-title .anticon +span{margin-inline-start:var(--ant-menu-icon-margin-inline-end);opacity:1;transition:opacity var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),margin var(--ant-motion-duration-slow),color var(--ant-motion-duration-slow);}.ant-menu .ant-menu-item .ant-menu-item-icon,.ant-menu .ant-menu-submenu-title .ant-menu-item-icon{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.ant-menu .ant-menu-item .ant-menu-item-icon >*,.ant-menu .ant-menu-submenu-title .ant-menu-item-icon >*{line-height:1;}.ant-menu .ant-menu-item .ant-menu-item-icon svg,.ant-menu .ant-menu-submenu-title .ant-menu-item-icon svg{display:inline-block;}.ant-menu .ant-menu-item.ant-menu-item-only-child >.anticon,.ant-menu .ant-menu-submenu-title.ant-menu-item-only-child >.anticon,.ant-menu .ant-menu-item.ant-menu-item-only-child >.ant-menu-item-icon,.ant-menu .ant-menu-submenu-title.ant-menu-item-only-child >.ant-menu-item-icon{margin-inline-end:0;}.ant-menu .ant-menu-item-disabled,.ant-menu .ant-menu-submenu-disabled{background:none!important;cursor:not-allowed;}.ant-menu .ant-menu-item-disabled::after,.ant-menu .ant-menu-submenu-disabled::after{border-color:transparent!important;}.ant-menu .ant-menu-item-disabled a,.ant-menu .ant-menu-submenu-disabled a{color:inherit!important;cursor:not-allowed;pointer-events:none;}.ant-menu .ant-menu-item-disabled >.ant-menu-submenu-title,.ant-menu .ant-menu-submenu-disabled >.ant-menu-submenu-title{color:inherit!important;cursor:not-allowed;}.ant-menu .ant-menu-item-group .ant-menu-item-group-list{margin:0;padding:0;}.ant-menu .ant-menu-item-group .ant-menu-item-group-list .ant-menu-item,.ant-menu .ant-menu-item-group .ant-menu-item-group-list .ant-menu-submenu-title{padding-inline:calc(var(--ant-font-size) * 2) var(--ant-padding);}.ant-menu-submenu-popup{position:absolute;z-index:var(--ant-menu-z-index-popup);border-radius:var(--ant-border-radius-lg);box-shadow:none;transform-origin:0 0;}.ant-menu-submenu-popup.ant-menu-submenu{background:transparent;}.ant-menu-submenu-popup::before{position:absolute;inset:0;z-index:-1;width:100%;height:100%;opacity:0;content:"";}.ant-menu-submenu-popup >.ant-menu{border-radius:var(--ant-border-radius-lg);}.ant-menu-submenu-popup >.ant-menu .ant-menu-item,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title{position:relative;display:block;margin:0;white-space:nowrap;cursor:pointer;transition:border-color var(--ant-motion-duration-slow),background var(--ant-motion-duration-slow),padding calc(var(--ant-motion-duration-slow) + 0.1s) var(--ant-motion-ease-in-out);}.ant-menu-submenu-popup >.ant-menu .ant-menu-item .ant-menu-item-icon,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-submenu-popup >.ant-menu .ant-menu-item .anticon,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title .anticon{min-width:var(--ant-menu-icon-size);font-size:var(--ant-menu-icon-size);transition:font-size var(--ant-motion-duration-mid) var(--ant-motion-ease-out),margin var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),color var(--ant-motion-duration-slow);}.ant-menu-submenu-popup >.ant-menu .ant-menu-item .ant-menu-item-icon +span,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title .ant-menu-item-icon +span,.ant-menu-submenu-popup >.ant-menu .ant-menu-item .anticon +span,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title .anticon +span{margin-inline-start:var(--ant-menu-icon-margin-inline-end);opacity:1;transition:opacity var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),margin var(--ant-motion-duration-slow),color var(--ant-motion-duration-slow);}.ant-menu-submenu-popup >.ant-menu .ant-menu-item .ant-menu-item-icon,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title .ant-menu-item-icon{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.ant-menu-submenu-popup >.ant-menu .ant-menu-item .ant-menu-item-icon >*,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title .ant-menu-item-icon >*{line-height:1;}.ant-menu-submenu-popup >.ant-menu .ant-menu-item .ant-menu-item-icon svg,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title .ant-menu-item-icon svg{display:inline-block;}.ant-menu-submenu-popup >.ant-menu .ant-menu-item.ant-menu-item-only-child >.anticon,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title.ant-menu-item-only-child >.anticon,.ant-menu-submenu-popup >.ant-menu .ant-menu-item.ant-menu-item-only-child >.ant-menu-item-icon,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title.ant-menu-item-only-child >.ant-menu-item-icon{margin-inline-end:0;}.ant-menu-submenu-popup >.ant-menu .ant-menu-item-disabled,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-disabled{background:none!important;cursor:not-allowed;}.ant-menu-submenu-popup >.ant-menu .ant-menu-item-disabled::after,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-disabled::after{border-color:transparent!important;}.ant-menu-submenu-popup >.ant-menu .ant-menu-item-disabled a,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-disabled a{color:inherit!important;cursor:not-allowed;pointer-events:none;}.ant-menu-submenu-popup >.ant-menu .ant-menu-item-disabled >.ant-menu-submenu-title,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-disabled >.ant-menu-submenu-title{color:inherit!important;cursor:not-allowed;}.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-expand-icon,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-arrow{position:absolute;top:50%;inset-inline-end:var(--ant-margin);width:calc(var(--ant-font-size) / 7 * 5);color:currentcolor;transform:translateY(-50%);transition:transform var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),opacity var(--ant-motion-duration-slow);}.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-arrow::before,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-arrow::after{position:absolute;width:calc(calc(var(--ant-font-size) / 7 * 5) * 0.6);height:calc(calc(var(--ant-font-size) / 7 * 5) * 0.15);background-color:currentcolor;border-radius:var(--ant-border-radius);transition:background var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),transform var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),top var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),color var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out);content:"";}.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-arrow::before{transform:rotate(45deg) translateY(calc(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25) * -1));}.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-arrow::after{transform:rotate(-45deg) translateY(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25));}.ant-menu-submenu-popup >.ant-menu .ant-menu-item,.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu>.ant-menu-submenu-title{border-radius:var(--ant-menu-sub-menu-item-border-radius);}.ant-menu-submenu-popup >.ant-menu .ant-menu-submenu-title::after{transition:transform var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out);}.ant-menu-submenu-placement-leftTop,.ant-menu-submenu-placement-bottomRight,.ant-menu-submenu{transform-origin:100% 0;}.ant-menu-submenu-placement-leftBottom,.ant-menu-submenu-placement-topRight,.ant-menu-submenu{transform-origin:100% 100%;}.ant-menu-submenu-placement-rightBottom,.ant-menu-submenu-placement-topLeft,.ant-menu-submenu{transform-origin:0 100%;}.ant-menu-submenu-placement-bottomLeft,.ant-menu-submenu-placement-rightTop,.ant-menu-submenu{transform-origin:0 0;}.ant-menu-submenu-placement-leftTop,.ant-menu-submenu-placement-leftBottom{padding-inline-end:var(--ant-padding-xs);}.ant-menu-submenu-placement-rightTop,.ant-menu-submenu-placement-rightBottom{padding-inline-start:var(--ant-padding-xs);}.ant-menu-submenu-placement-topRight,.ant-menu-submenu-placement-topLeft{padding-bottom:var(--ant-padding-xs);}.ant-menu-submenu-placement-bottomRight,.ant-menu-submenu-placement-bottomLeft{padding-top:var(--ant-padding-xs);}.ant-menu .ant-menu-submenu-expand-icon,.ant-menu .ant-menu-submenu-arrow{position:absolute;top:50%;inset-inline-end:var(--ant-margin);width:calc(var(--ant-font-size) / 7 * 5);color:currentcolor;transform:translateY(-50%);transition:transform var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),opacity var(--ant-motion-duration-slow);}.ant-menu .ant-menu-submenu-arrow::before,.ant-menu .ant-menu-submenu-arrow::after{position:absolute;width:calc(calc(var(--ant-font-size) / 7 * 5) * 0.6);height:calc(calc(var(--ant-font-size) / 7 * 5) * 0.15);background-color:currentcolor;border-radius:var(--ant-border-radius);transition:background var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),transform var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),top var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),color var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out);content:"";}.ant-menu .ant-menu-submenu-arrow::before{transform:rotate(45deg) translateY(calc(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25) * -1));}.ant-menu .ant-menu-submenu-arrow::after{transform:rotate(-45deg) translateY(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25));}.ant-menu-inline-collapsed .ant-menu-submenu-arrow::before,.ant-menu-inline .ant-menu-submenu-arrow::before{transform:rotate(-45deg) translateX(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25));}.ant-menu-inline-collapsed .ant-menu-submenu-arrow::after,.ant-menu-inline .ant-menu-submenu-arrow::after{transform:rotate(45deg) translateX(calc(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25) * -1));}.ant-menu .ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow{transform:translateY(calc(calc(var(--ant-font-size) / 7 * 5) * 0.2 * -1));}.ant-menu .ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow::after{transform:rotate(-45deg) translateX(calc(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25) * -1));}.ant-menu .ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow::before{transform:rotate(45deg) translateX(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25));}.ant-layout-header .ant-menu{line-height:inherit;}.ant-menu-horizontal{line-height:var(--ant-menu-horizontal-line-height);border:0;border-bottom:var(--ant-line-width) var(--ant-line-type) var(--ant-color-split);box-shadow:none;}.ant-menu-horizontal::after{display:block;clear:both;height:0;content:"\20";}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{position:relative;display:inline-block;vertical-align:bottom;padding-inline:var(--ant-menu-item-padding-inline);}.ant-menu-horizontal >.ant-menu-item:hover,.ant-menu-horizontal >.ant-menu-item-active,.ant-menu-horizontal >.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:transparent;}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu-title{transition:border-color var(--ant-motion-duration-slow),background var(--ant-motion-duration-slow);}.ant-menu-horizontal .ant-menu-submenu-arrow{display:none;}.ant-menu-inline.ant-menu-root,.ant-menu-vertical.ant-menu-root{box-shadow:none;}.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-item{position:relative;overflow:hidden;}.ant-menu-inline .ant-menu-item,.ant-menu-vertical .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{height:var(--ant-menu-item-height);line-height:var(--ant-menu-item-height);padding-inline:var(--ant-menu-item-padding-inline);overflow:hidden;text-overflow:ellipsis;margin-inline:var(--ant-menu-item-margin-inline);margin-block:var(--ant-menu-item-margin-block);width:var(--ant-menu-item-width);}.ant-menu-inline >.ant-menu-item,.ant-menu-vertical >.ant-menu-item,.ant-menu-inline >.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical >.ant-menu-submenu>.ant-menu-submenu-title{height:var(--ant-menu-item-height);line-height:var(--ant-menu-item-height);}.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{padding-inline-end:calc(calc(var(--ant-font-size) / 7 * 5) + var(--ant-padding) + var(--ant-margin-xs));}.ant-menu-submenu-popup .ant-menu-vertical{box-shadow:var(--ant-box-shadow-secondary);}.ant-menu-submenu-popup .ant-menu-vertical .ant-menu-item{position:relative;overflow:hidden;}.ant-menu-submenu-popup .ant-menu-vertical .ant-menu-item,.ant-menu-submenu-popup .ant-menu-vertical .ant-menu-submenu-title{height:var(--ant-menu-item-height);line-height:var(--ant-menu-item-height);padding-inline:var(--ant-menu-item-padding-inline);overflow:hidden;text-overflow:ellipsis;margin-inline:var(--ant-menu-item-margin-inline);margin-block:var(--ant-menu-item-margin-block);width:var(--ant-menu-item-width);}.ant-menu-submenu-popup .ant-menu-vertical >.ant-menu-item,.ant-menu-submenu-popup .ant-menu-vertical >.ant-menu-submenu>.ant-menu-submenu-title{height:var(--ant-menu-item-height);line-height:var(--ant-menu-item-height);}.ant-menu-submenu-popup .ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-submenu-popup .ant-menu-vertical .ant-menu-submenu-title{padding-inline-end:calc(calc(var(--ant-font-size) / 7 * 5) + var(--ant-padding) + var(--ant-margin-xs));}.ant-menu-submenu-popup .ant-menu-vertical.ant-menu-sub{min-width:var(--ant-menu-dropdown-width);max-height:calc(100vh - calc(var(--ant-control-height-lg) * 2.5));padding:0;overflow:hidden;border-inline-end:0;}.ant-menu-submenu-popup .ant-menu-vertical.ant-menu-sub:not([class*='-active']){overflow-x:hidden;overflow-y:auto;}.ant-menu-inline{width:100%;}.ant-menu-inline.ant-menu-root .ant-menu-item,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title{display:flex;align-items:center;transition:border-color var(--ant-motion-duration-slow),background var(--ant-motion-duration-slow),padding var(--ant-motion-duration-fast) var(--ant-motion-ease-out);}.ant-menu-inline.ant-menu-root .ant-menu-item >.ant-menu-title-content,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title >.ant-menu-title-content{flex:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;}.ant-menu-inline.ant-menu-root .ant-menu-item >*,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title >*{flex:none;}.ant-menu-inline .ant-menu-sub.ant-menu-inline{padding:0;border:0;border-radius:0;box-shadow:none;}.ant-menu-inline .ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:var(--ant-menu-item-height);line-height:var(--ant-menu-item-height);list-style-position:inside;list-style-type:disc;}.ant-menu-inline .ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-inline-start:var(--ant-padding-xl);}.ant-menu-inline .ant-menu-item{height:var(--ant-menu-item-height);line-height:var(--ant-menu-item-height);list-style-position:inside;list-style-type:disc;}.ant-menu-inline-collapsed{width:var(--ant-menu-collapsed-width);}.ant-menu-inline-collapsed.ant-menu-root .ant-menu-item >.ant-menu-inline-collapsed-noicon,.ant-menu-inline-collapsed.ant-menu-root .ant-menu-submenu .ant-menu-submenu-title >.ant-menu-inline-collapsed-noicon{font-size:var(--ant-font-size-lg);text-align:center;}.ant-menu-inline-collapsed >.ant-menu-item,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-inline-collapsed >.ant-menu-submenu>.ant-menu-submenu-title{inset-inline-start:0;padding-inline:calc(50% - calc(var(--ant-menu-collapsed-icon-size) / 2) - var(--ant-menu-item-margin-inline));text-overflow:clip;}.ant-menu-inline-collapsed >.ant-menu-item .ant-menu-submenu-arrow,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-inline-collapsed >.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-inline-collapsed >.ant-menu-item .ant-menu-submenu-expand-icon,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-expand-icon,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-expand-icon,.ant-menu-inline-collapsed >.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-expand-icon{opacity:0;}.ant-menu-inline-collapsed >.ant-menu-item .ant-menu-item-icon,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-inline-collapsed >.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-inline-collapsed >.ant-menu-item .anticon,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu-inline-collapsed >.ant-menu-submenu>.ant-menu-submenu-title .anticon{margin:0;font-size:var(--ant-menu-collapsed-icon-size);line-height:var(--ant-menu-item-height);}.ant-menu-inline-collapsed >.ant-menu-item .ant-menu-item-icon +span,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon +span,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon +span,.ant-menu-inline-collapsed >.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon +span,.ant-menu-inline-collapsed >.ant-menu-item .anticon +span,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon +span,.ant-menu-inline-collapsed >.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon +span,.ant-menu-inline-collapsed >.ant-menu-submenu>.ant-menu-submenu-title .anticon +span{display:inline-block;opacity:0;}.ant-menu-inline-collapsed .ant-menu-item-icon,.ant-menu-inline-collapsed .anticon{display:inline-block;}.ant-menu-inline-collapsed-tooltip{pointer-events:none;}.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,.ant-menu-inline-collapsed-tooltip .anticon{display:none;}.ant-menu-inline-collapsed-tooltip a,.ant-menu-inline-collapsed-tooltip a:hover{color:var(--ant-color-text-light-solid);}.ant-menu-inline-collapsed .ant-menu-item-group-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-inline:var(--ant-padding-xs);}.ant-menu-light,.ant-menu-light>.ant-menu{color:var(--ant-menu-item-color);background:var(--ant-menu-item-bg);}.ant-menu-light.ant-menu-root:focus-visible,.ant-menu-light>.ant-menu.ant-menu-root:focus-visible{outline:var(--ant-line-width-focus) solid var(--ant-color-primary-border);outline-offset:1px;transition:outline-offset 0s,outline 0s;}.ant-menu-light .ant-menu-item-group-title,.ant-menu-light>.ant-menu .ant-menu-item-group-title,.ant-menu-light .ant-menu-item-extra,.ant-menu-light>.ant-menu .ant-menu-item-extra{color:var(--ant-menu-group-title-color);}.ant-menu-light .ant-menu-submenu-selected>.ant-menu-submenu-title,.ant-menu-light>.ant-menu .ant-menu-submenu-selected>.ant-menu-submenu-title{color:var(--ant-menu-sub-menu-item-selected-color);}.ant-menu-light .ant-menu-item,.ant-menu-light>.ant-menu .ant-menu-item,.ant-menu-light .ant-menu-submenu-title,.ant-menu-light>.ant-menu .ant-menu-submenu-title{color:var(--ant-menu-item-color);}.ant-menu-light .ant-menu-item:not(.ant-menu-item-disabled):focus-visible,.ant-menu-light>.ant-menu .ant-menu-item:not(.ant-menu-item-disabled):focus-visible,.ant-menu-light .ant-menu-submenu-title:not(.ant-menu-item-disabled):focus-visible,.ant-menu-light>.ant-menu .ant-menu-submenu-title:not(.ant-menu-item-disabled):focus-visible{outline:var(--ant-line-width-focus) solid var(--ant-color-primary-border);outline-offset:1px;transition:outline-offset 0s,outline 0s;}.ant-menu-light .ant-menu-item-disabled,.ant-menu-light>.ant-menu .ant-menu-item-disabled,.ant-menu-light .ant-menu-submenu-disabled,.ant-menu-light>.ant-menu .ant-menu-submenu-disabled{color:var(--ant-menu-item-disabled-color)!important;}.ant-menu-light .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected):hover,.ant-menu-light>.ant-menu .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected):hover,.ant-menu-light .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected) >.ant-menu-submenu-title:hover,.ant-menu-light>.ant-menu .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected) >.ant-menu-submenu-title:hover{color:var(--ant-menu-item-hover-color);}.ant-menu-light:not(.ant-menu-horizontal) .ant-menu-item:not(.ant-menu-item-selected):hover,.ant-menu-light>.ant-menu:not(.ant-menu-horizontal) .ant-menu-item:not(.ant-menu-item-selected):hover{background-color:var(--ant-menu-item-hover-bg);}.ant-menu-light:not(.ant-menu-horizontal) .ant-menu-item:not(.ant-menu-item-selected):active,.ant-menu-light>.ant-menu:not(.ant-menu-horizontal) .ant-menu-item:not(.ant-menu-item-selected):active{background-color:var(--ant-menu-item-active-bg);}.ant-menu-light:not(.ant-menu-horizontal) .ant-menu-submenu-title:hover,.ant-menu-light>.ant-menu:not(.ant-menu-horizontal) .ant-menu-submenu-title:hover{background-color:var(--ant-menu-item-hover-bg);}.ant-menu-light:not(.ant-menu-horizontal) .ant-menu-submenu-title:active,.ant-menu-light>.ant-menu:not(.ant-menu-horizontal) .ant-menu-submenu-title:active{background-color:var(--ant-menu-item-active-bg);}.ant-menu-light .ant-menu-item-danger,.ant-menu-light>.ant-menu .ant-menu-item-danger{color:var(--ant-menu-danger-item-color);}.ant-menu-light .ant-menu-item-danger.ant-menu-item:hover:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected),.ant-menu-light>.ant-menu .ant-menu-item-danger.ant-menu-item:hover:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected){color:var(--ant-menu-danger-item-hover-color);}.ant-menu-light .ant-menu-item-danger.ant-menu-item:active,.ant-menu-light>.ant-menu .ant-menu-item-danger.ant-menu-item:active{background:var(--ant-menu-danger-item-active-bg);}.ant-menu-light .ant-menu-item a,.ant-menu-light>.ant-menu .ant-menu-item a,.ant-menu-light .ant-menu-item a:hover,.ant-menu-light>.ant-menu .ant-menu-item a:hover{color:inherit;}.ant-menu-light .ant-menu-item-selected,.ant-menu-light>.ant-menu .ant-menu-item-selected{color:var(--ant-menu-item-selected-color);}.ant-menu-light .ant-menu-item-selected.ant-menu-item-danger,.ant-menu-light>.ant-menu .ant-menu-item-selected.ant-menu-item-danger{color:var(--ant-menu-danger-item-selected-color);}.ant-menu-light .ant-menu-item-selected a,.ant-menu-light>.ant-menu .ant-menu-item-selected a,.ant-menu-light .ant-menu-item-selected a:hover,.ant-menu-light>.ant-menu .ant-menu-item-selected a:hover{color:inherit;}.ant-menu-light .ant-menu-item-selected,.ant-menu-light>.ant-menu .ant-menu-item-selected{background-color:var(--ant-menu-item-selected-bg);}.ant-menu-light .ant-menu-item-selected.ant-menu-item-danger,.ant-menu-light>.ant-menu .ant-menu-item-selected.ant-menu-item-danger{background-color:var(--ant-menu-danger-item-selected-bg);}.ant-menu-light.ant-menu-submenu>.ant-menu,.ant-menu-light>.ant-menu.ant-menu-submenu>.ant-menu{background-color:var(--ant-color-bg-elevated);}.ant-menu-light.ant-menu-popup>.ant-menu,.ant-menu-light>.ant-menu.ant-menu-popup>.ant-menu{background-color:var(--ant-menu-popup-bg);}.ant-menu-light.ant-menu-submenu-popup>.ant-menu,.ant-menu-light>.ant-menu.ant-menu-submenu-popup>.ant-menu{background-color:var(--ant-menu-popup-bg);}.ant-menu-light.ant-menu-horizontal >.ant-menu-item,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu{top:var(--ant-menu-active-bar-border-width);margin-top:calc(var(--ant-menu-active-bar-border-width) * -1);margin-bottom:0;border-radius:var(--ant-menu-horizontal-item-border-radius);}.ant-menu-light.ant-menu-horizontal >.ant-menu-item::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item::after,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu::after{position:absolute;inset-inline:var(--ant-menu-item-padding-inline);bottom:0;border-bottom:var(--ant-menu-active-bar-height) solid transparent;transition:border-color var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out);content:"";}.ant-menu-light.ant-menu-horizontal >.ant-menu-item:hover,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item:hover,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu:hover,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu:hover,.ant-menu-light.ant-menu-horizontal >.ant-menu-item-active,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item-active,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu-active,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-active,.ant-menu-light.ant-menu-horizontal >.ant-menu-item-open,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item-open,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu-open,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-open{background:var(--ant-menu-horizontal-item-hover-bg);}.ant-menu-light.ant-menu-horizontal >.ant-menu-item:hover::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item:hover::after,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu:hover::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu:hover::after,.ant-menu-light.ant-menu-horizontal >.ant-menu-item-active::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item-active::after,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu-active::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-active::after,.ant-menu-light.ant-menu-horizontal >.ant-menu-item-open::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item-open::after,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu-open::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-open::after{border-bottom-width:var(--ant-menu-active-bar-height);border-bottom-color:var(--ant-menu-horizontal-item-selected-color);}.ant-menu-light.ant-menu-horizontal >.ant-menu-item-selected,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item-selected,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu-selected,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-selected{color:var(--ant-menu-horizontal-item-selected-color);background-color:var(--ant-menu-horizontal-item-selected-bg);}.ant-menu-light.ant-menu-horizontal >.ant-menu-item-selected:hover,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item-selected:hover,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu-selected:hover,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-selected:hover{background-color:var(--ant-menu-horizontal-item-selected-bg);}.ant-menu-light.ant-menu-horizontal >.ant-menu-item-selected::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-item-selected::after,.ant-menu-light.ant-menu-horizontal >.ant-menu-submenu-selected::after,.ant-menu-light>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-selected::after{border-bottom-width:var(--ant-menu-active-bar-height);border-bottom-color:var(--ant-menu-horizontal-item-selected-color);}.ant-menu-light.ant-menu-root.ant-menu-inline,.ant-menu-light>.ant-menu.ant-menu-root.ant-menu-inline,.ant-menu-light.ant-menu-root.ant-menu-vertical,.ant-menu-light>.ant-menu.ant-menu-root.ant-menu-vertical{border-inline-end:var(--ant-menu-active-bar-border-width) var(--ant-line-type) var(--ant-color-split);}.ant-menu-light.ant-menu-inline .ant-menu-sub.ant-menu-inline,.ant-menu-light>.ant-menu.ant-menu-inline .ant-menu-sub.ant-menu-inline{background:var(--ant-menu-sub-menu-item-bg);}.ant-menu-light.ant-menu-inline .ant-menu-item,.ant-menu-light>.ant-menu.ant-menu-inline .ant-menu-item{position:relative;}.ant-menu-light.ant-menu-inline .ant-menu-item::after,.ant-menu-light>.ant-menu.ant-menu-inline .ant-menu-item::after{position:absolute;inset-block:0;inset-inline-end:0;border-inline-end:var(--ant-menu-active-bar-width) solid var(--ant-menu-item-selected-color);transform:scaleY(0.0001);opacity:0;transition:transform var(--ant-motion-duration-mid) var(--ant-motion-ease-out),opacity var(--ant-motion-duration-mid) var(--ant-motion-ease-out);content:"";}.ant-menu-light.ant-menu-inline .ant-menu-item.ant-menu-item-danger::after,.ant-menu-light>.ant-menu.ant-menu-inline .ant-menu-item.ant-menu-item-danger::after{border-inline-end-color:var(--ant-menu-danger-item-selected-color);}.ant-menu-light.ant-menu-inline .ant-menu-selected::after,.ant-menu-light>.ant-menu.ant-menu-inline .ant-menu-selected::after,.ant-menu-light.ant-menu-inline .ant-menu-item-selected::after,.ant-menu-light>.ant-menu.ant-menu-inline .ant-menu-item-selected::after{transform:scaleY(1);opacity:1;transition:transform var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out),opacity var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out);}.ant-menu-dark,.ant-menu-dark>.ant-menu{color:var(--ant-menu-dark-item-color);background:var(--ant-menu-dark-item-bg);}.ant-menu-dark.ant-menu-root:focus-visible,.ant-menu-dark>.ant-menu.ant-menu-root:focus-visible{outline:var(--ant-line-width-focus) solid var(--ant-color-primary-border);outline-offset:1px;transition:outline-offset 0s,outline 0s;}.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark>.ant-menu .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item-extra,.ant-menu-dark>.ant-menu .ant-menu-item-extra{color:var(--ant-menu-dark-group-title-color);}.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title,.ant-menu-dark>.ant-menu .ant-menu-submenu-selected>.ant-menu-submenu-title{color:var(--ant-menu-dark-item-selected-color);}.ant-menu-dark .ant-menu-item,.ant-menu-dark>.ant-menu .ant-menu-item,.ant-menu-dark .ant-menu-submenu-title,.ant-menu-dark>.ant-menu .ant-menu-submenu-title{color:var(--ant-menu-dark-item-color);}.ant-menu-dark .ant-menu-item:not(.ant-menu-item-disabled):focus-visible,.ant-menu-dark>.ant-menu .ant-menu-item:not(.ant-menu-item-disabled):focus-visible,.ant-menu-dark .ant-menu-submenu-title:not(.ant-menu-item-disabled):focus-visible,.ant-menu-dark>.ant-menu .ant-menu-submenu-title:not(.ant-menu-item-disabled):focus-visible{outline:var(--ant-line-width-focus) solid var(--ant-color-primary-border);outline-offset:1px;transition:outline-offset 0s,outline 0s;}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark>.ant-menu .ant-menu-item-disabled,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark>.ant-menu .ant-menu-submenu-disabled{color:var(--ant-menu-dark-item-disabled-color)!important;}.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected):hover,.ant-menu-dark>.ant-menu .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected):hover,.ant-menu-dark .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected) >.ant-menu-submenu-title:hover,.ant-menu-dark>.ant-menu .ant-menu-item:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected) >.ant-menu-submenu-title:hover{color:var(--ant-menu-dark-item-hover-color);}.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item:not(.ant-menu-item-selected):hover,.ant-menu-dark>.ant-menu:not(.ant-menu-horizontal) .ant-menu-item:not(.ant-menu-item-selected):hover{background-color:var(--ant-menu-dark-item-hover-bg);}.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item:not(.ant-menu-item-selected):active,.ant-menu-dark>.ant-menu:not(.ant-menu-horizontal) .ant-menu-item:not(.ant-menu-item-selected):active{background-color:transparent;}.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-submenu-title:hover,.ant-menu-dark>.ant-menu:not(.ant-menu-horizontal) .ant-menu-submenu-title:hover{background-color:var(--ant-menu-dark-item-hover-bg);}.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-submenu-title:active,.ant-menu-dark>.ant-menu:not(.ant-menu-horizontal) .ant-menu-submenu-title:active{background-color:transparent;}.ant-menu-dark .ant-menu-item-danger,.ant-menu-dark>.ant-menu .ant-menu-item-danger{color:var(--ant-menu-dark-danger-item-color);}.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected),.ant-menu-dark>.ant-menu .ant-menu-item-danger.ant-menu-item:hover:not(.ant-menu-item-selected):not(.ant-menu-submenu-selected){color:var(--ant-menu-dark-danger-item-hover-color);}.ant-menu-dark .ant-menu-item-danger.ant-menu-item:active,.ant-menu-dark>.ant-menu .ant-menu-item-danger.ant-menu-item:active{background:var(--ant-menu-dark-danger-item-active-bg);}.ant-menu-dark .ant-menu-item a,.ant-menu-dark>.ant-menu .ant-menu-item a,.ant-menu-dark .ant-menu-item a:hover,.ant-menu-dark>.ant-menu .ant-menu-item a:hover{color:inherit;}.ant-menu-dark .ant-menu-item-selected,.ant-menu-dark>.ant-menu .ant-menu-item-selected{color:var(--ant-menu-dark-item-selected-color);}.ant-menu-dark .ant-menu-item-selected.ant-menu-item-danger,.ant-menu-dark>.ant-menu .ant-menu-item-selected.ant-menu-item-danger{color:var(--ant-menu-dark-danger-item-selected-color);}.ant-menu-dark .ant-menu-item-selected a,.ant-menu-dark>.ant-menu .ant-menu-item-selected a,.ant-menu-dark .ant-menu-item-selected a:hover,.ant-menu-dark>.ant-menu .ant-menu-item-selected a:hover{color:inherit;}.ant-menu-dark .ant-menu-item-selected,.ant-menu-dark>.ant-menu .ant-menu-item-selected{background-color:var(--ant-menu-dark-item-selected-bg);}.ant-menu-dark .ant-menu-item-selected.ant-menu-item-danger,.ant-menu-dark>.ant-menu .ant-menu-item-selected.ant-menu-item-danger{background-color:var(--ant-menu-dark-danger-item-selected-bg);}.ant-menu-dark.ant-menu-submenu>.ant-menu,.ant-menu-dark>.ant-menu.ant-menu-submenu>.ant-menu{background-color:var(--ant-menu-dark-sub-menu-item-bg);}.ant-menu-dark.ant-menu-popup>.ant-menu,.ant-menu-dark>.ant-menu.ant-menu-popup>.ant-menu{background-color:var(--ant-menu-dark-popup-bg);}.ant-menu-dark.ant-menu-submenu-popup>.ant-menu,.ant-menu-dark>.ant-menu.ant-menu-submenu-popup>.ant-menu{background-color:var(--ant-menu-dark-popup-bg);}.ant-menu-dark.ant-menu-horizontal,.ant-menu-dark>.ant-menu.ant-menu-horizontal{border-bottom:0;}.ant-menu-dark.ant-menu-horizontal >.ant-menu-item,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu{top:0;margin-top:calc(0px * -1);margin-bottom:0;border-radius:var(--ant-menu-horizontal-item-border-radius);}.ant-menu-dark.ant-menu-horizontal >.ant-menu-item::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item::after,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu::after{position:absolute;inset-inline:var(--ant-menu-item-padding-inline);bottom:0;border-bottom:0px solid transparent;transition:border-color var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out);content:"";}.ant-menu-dark.ant-menu-horizontal >.ant-menu-item:hover,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item:hover,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu:hover,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu:hover,.ant-menu-dark.ant-menu-horizontal >.ant-menu-item-active,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item-active,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu-active,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-active,.ant-menu-dark.ant-menu-horizontal >.ant-menu-item-open,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item-open,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu-open,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-open{background:var(--ant-menu-horizontal-item-hover-bg);}.ant-menu-dark.ant-menu-horizontal >.ant-menu-item:hover::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item:hover::after,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu:hover::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu:hover::after,.ant-menu-dark.ant-menu-horizontal >.ant-menu-item-active::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item-active::after,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu-active::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-active::after,.ant-menu-dark.ant-menu-horizontal >.ant-menu-item-open::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item-open::after,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu-open::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-open::after{border-bottom-width:0;border-bottom-color:var(--ant-menu-dark-item-selected-color);}.ant-menu-dark.ant-menu-horizontal >.ant-menu-item-selected,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item-selected,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu-selected,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-selected{color:var(--ant-menu-dark-item-selected-color);background-color:var(--ant-menu-dark-item-selected-bg);}.ant-menu-dark.ant-menu-horizontal >.ant-menu-item-selected:hover,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item-selected:hover,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu-selected:hover,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-selected:hover{background-color:var(--ant-menu-dark-item-selected-bg);}.ant-menu-dark.ant-menu-horizontal >.ant-menu-item-selected::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-item-selected::after,.ant-menu-dark.ant-menu-horizontal >.ant-menu-submenu-selected::after,.ant-menu-dark>.ant-menu.ant-menu-horizontal >.ant-menu-submenu-selected::after{border-bottom-width:0;border-bottom-color:var(--ant-menu-dark-item-selected-color);}.ant-menu-dark.ant-menu-root.ant-menu-inline,.ant-menu-dark>.ant-menu.ant-menu-root.ant-menu-inline,.ant-menu-dark.ant-menu-root.ant-menu-vertical,.ant-menu-dark>.ant-menu.ant-menu-root.ant-menu-vertical{border-inline-end:0px var(--ant-line-type) var(--ant-color-split);}.ant-menu-dark.ant-menu-inline .ant-menu-sub.ant-menu-inline,.ant-menu-dark>.ant-menu.ant-menu-inline .ant-menu-sub.ant-menu-inline{background:var(--ant-menu-dark-sub-menu-item-bg);}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark>.ant-menu.ant-menu-inline .ant-menu-item{position:relative;}.ant-menu-dark.ant-menu-inline .ant-menu-item::after,.ant-menu-dark>.ant-menu.ant-menu-inline .ant-menu-item::after{position:absolute;inset-block:0;inset-inline-end:0;border-inline-end:var(--ant-menu-active-bar-width) solid var(--ant-menu-dark-item-selected-color);transform:scaleY(0.0001);opacity:0;transition:transform var(--ant-motion-duration-mid) var(--ant-motion-ease-out),opacity var(--ant-motion-duration-mid) var(--ant-motion-ease-out);content:"";}.ant-menu-dark.ant-menu-inline .ant-menu-item.ant-menu-item-danger::after,.ant-menu-dark>.ant-menu.ant-menu-inline .ant-menu-item.ant-menu-item-danger::after{border-inline-end-color:var(--ant-menu-dark-danger-item-selected-color);}.ant-menu-dark.ant-menu-inline .ant-menu-selected::after,.ant-menu-dark>.ant-menu.ant-menu-inline .ant-menu-selected::after,.ant-menu-dark.ant-menu-inline .ant-menu-item-selected::after,.ant-menu-dark>.ant-menu.ant-menu-inline .ant-menu-item-selected::after{transform:scaleY(1);opacity:1;transition:transform var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out),opacity var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out);}.ant-menu-rtl{direction:rtl;}.ant-menu-submenu-rtl{transform-origin:100% 0;}.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-arrow::before,.ant-menu-submenu-rtl .ant-menu-vertical .ant-menu-submenu-arrow::before{transform:rotate(-45deg) translateY(calc(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25) * -1));}.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-arrow::after,.ant-menu-submenu-rtl .ant-menu-vertical .ant-menu-submenu-arrow::after{transform:rotate(45deg) translateY(calc(calc(var(--ant-font-size) / 7 * 5) * 0.25));}.ant-menu .ant-motion-collapse-legacy{overflow:hidden;}.ant-menu .ant-motion-collapse-legacy-active{transition:height var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out),opacity var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out)!important;}.ant-menu .ant-motion-collapse{overflow:hidden;transition:height var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out),opacity var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out)!important;}.ant-slide-up-enter,.ant-slide-up-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-up-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-up-enter.ant-slide-up-enter-active,.ant-slide-up-appear.ant-slide-up-appear-active{animation-name:antSlideUpIn;animation-play-state:running;}.ant-slide-up-leave.ant-slide-up-leave-active{animation-name:antSlideUpOut;animation-play-state:running;pointer-events:none;}.ant-slide-up-enter,.ant-slide-up-appear{transform:scale(0);transform-origin:0% 0%;opacity:0;animation-timing-function:var(--ant-motion-ease-out-quint);}.ant-slide-up-enter-prepare,.ant-slide-up-appear-prepare{transform:scale(1);}.ant-slide-up-leave{animation-timing-function:var(--ant-motion-ease-in-quint);}.ant-slide-down-enter,.ant-slide-down-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-down-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-down-enter.ant-slide-down-enter-active,.ant-slide-down-appear.ant-slide-down-appear-active{animation-name:antSlideDownIn;animation-play-state:running;}.ant-slide-down-leave.ant-slide-down-leave-active{animation-name:antSlideDownOut;animation-play-state:running;pointer-events:none;}.ant-slide-down-enter,.ant-slide-down-appear{transform:scale(0);transform-origin:0% 0%;opacity:0;animation-timing-function:var(--ant-motion-ease-out-quint);}.ant-slide-down-enter-prepare,.ant-slide-down-appear-prepare{transform:scale(1);}.ant-slide-down-leave{animation-timing-function:var(--ant-motion-ease-in-quint);}.ant-zoom-big-enter,.ant-zoom-big-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-zoom-big-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-zoom-big-enter.ant-zoom-big-enter-active,.ant-zoom-big-appear.ant-zoom-big-appear-active{animation-name:antZoomBigIn;animation-play-state:running;}.ant-zoom-big-leave.ant-zoom-big-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none;}.ant-zoom-big-enter,.ant-zoom-big-appear{transform:scale(0);opacity:0;animation-timing-function:var(--ant-motion-ease-out-circ);}.ant-zoom-big-enter-prepare,.ant-zoom-big-appear-prepare{transform:none;}.ant-zoom-big-leave{animation-timing-function:var(--ant-motion-ease-in-out-circ);}@keyframes antSlideUpIn{0%{transform:scaleY(0.8);transform-origin:0% 0%;opacity:0;}100%{transform:scaleY(1);transform-origin:0% 0%;opacity:1;}}@keyframes antSlideUpOut{0%{transform:scaleY(1);transform-origin:0% 0%;opacity:1;}100%{transform:scaleY(0.8);transform-origin:0% 0%;opacity:0;}}@keyframes antSlideDownIn{0%{transform:scaleY(0.8);transform-origin:100% 100%;opacity:0;}100%{transform:scaleY(1);transform-origin:100% 100%;opacity:1;}}@keyframes antSlideDownOut{0%{transform:scaleY(1);transform-origin:100% 100%;opacity:1;}100%{transform:scaleY(0.8);transform-origin:100% 100%;opacity:0;}}@keyframes antZoomBigIn{0%{transform:scale(0.8);opacity:0;}100%{transform:scale(1);opacity:1;}}@keyframes antZoomBigOut{0%{transform:scale(1);}100%{transform:scale(0.8);opacity:0;}}.ant-tooltip{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;font-family:var(--ant-font-family);position:absolute;z-index:var(--ant-tooltip-z-index-popup);display:block;width:max-content;max-width:250px;visibility:visible;--valid-offset-x:var(--arrow-offset-horizontal, var(--arrow-x));transform-origin:var(--valid-offset-x, 50%) var(--arrow-y, 50%);--antd-arrow-background-color:var(--ant-color-bg-spotlight);}.ant-tooltip-hidden{display:none;}.ant-tooltip .ant-tooltip-inner{min-width:calc(var(--ant-border-radius) * 2 + var(--ant-size-popup-arrow));min-height:var(--ant-control-height);padding:calc(var(--ant-padding-sm) / 2) var(--ant-padding-xs);color:var(--ant-color-text-light-solid);text-align:start;text-decoration:none;word-wrap:break-word;background-color:var(--ant-color-bg-spotlight);border-radius:var(--ant-border-radius);box-shadow:var(--ant-box-shadow-secondary);box-sizing:border-box;}.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{min-width:calc(var(--ant-border-radius) + var(--ant-size-popup-arrow) + var(--ant-tooltip-arrow-offset-horizontal));}.ant-tooltip-placement-left .ant-tooltip-inner,.ant-tooltip-placement-leftTop .ant-tooltip-inner,.ant-tooltip-placement-leftBottom .ant-tooltip-inner,.ant-tooltip-placement-right .ant-tooltip-inner,.ant-tooltip-placement-rightTop .ant-tooltip-inner,.ant-tooltip-placement-rightBottom .ant-tooltip-inner{border-radius:min(var(--ant-border-radius),8px);}.ant-tooltip .ant-tooltip-content{position:relative;}.ant-tooltip.ant-tooltip-blue .ant-tooltip-inner{background-color:var(--ant-blue-6);}.ant-tooltip.ant-tooltip-blue .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-blue-6);}.ant-tooltip.ant-tooltip-purple .ant-tooltip-inner{background-color:var(--ant-purple-6);}.ant-tooltip.ant-tooltip-purple .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-purple-6);}.ant-tooltip.ant-tooltip-cyan .ant-tooltip-inner{background-color:var(--ant-cyan-6);}.ant-tooltip.ant-tooltip-cyan .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-cyan-6);}.ant-tooltip.ant-tooltip-green .ant-tooltip-inner{background-color:var(--ant-green-6);}.ant-tooltip.ant-tooltip-green .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-green-6);}.ant-tooltip.ant-tooltip-magenta .ant-tooltip-inner{background-color:var(--ant-magenta-6);}.ant-tooltip.ant-tooltip-magenta .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-magenta-6);}.ant-tooltip.ant-tooltip-pink .ant-tooltip-inner{background-color:var(--ant-pink-6);}.ant-tooltip.ant-tooltip-pink .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-pink-6);}.ant-tooltip.ant-tooltip-red .ant-tooltip-inner{background-color:var(--ant-red-6);}.ant-tooltip.ant-tooltip-red .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-red-6);}.ant-tooltip.ant-tooltip-orange .ant-tooltip-inner{background-color:var(--ant-orange-6);}.ant-tooltip.ant-tooltip-orange .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-orange-6);}.ant-tooltip.ant-tooltip-yellow .ant-tooltip-inner{background-color:var(--ant-yellow-6);}.ant-tooltip.ant-tooltip-yellow .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-yellow-6);}.ant-tooltip.ant-tooltip-volcano .ant-tooltip-inner{background-color:var(--ant-volcano-6);}.ant-tooltip.ant-tooltip-volcano .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-volcano-6);}.ant-tooltip.ant-tooltip-geekblue .ant-tooltip-inner{background-color:var(--ant-geekblue-6);}.ant-tooltip.ant-tooltip-geekblue .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-geekblue-6);}.ant-tooltip.ant-tooltip-lime .ant-tooltip-inner{background-color:var(--ant-lime-6);}.ant-tooltip.ant-tooltip-lime .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-lime-6);}.ant-tooltip.ant-tooltip-gold .ant-tooltip-inner{background-color:var(--ant-gold-6);}.ant-tooltip.ant-tooltip-gold .ant-tooltip-arrow{--antd-arrow-background-color:var(--ant-gold-6);}.ant-tooltip-rtl{direction:rtl;}.ant-tooltip .ant-tooltip-arrow{position:absolute;z-index:1;display:block;pointer-events:none;width:var(--ant-size-popup-arrow);height:var(--ant-size-popup-arrow);overflow:hidden;}.ant-tooltip .ant-tooltip-arrow::before{position:absolute;bottom:0;inset-inline-start:0;width:var(--ant-size-popup-arrow);height:calc(var(--ant-size-popup-arrow) / 2);background:var(--antd-arrow-background-color);clip-path:var(--ant-tooltip-arrow-polygon);clip-path:var(--ant-tooltip-arrow-path);content:"";}.ant-tooltip .ant-tooltip-arrow::after{content:"";position:absolute;width:var(--ant-tooltip-arrow-shadow-width);height:var(--ant-tooltip-arrow-shadow-width);bottom:0;inset-inline:0;margin:auto;border-radius:0 0 var(--ant-border-radius-xs) 0;transform:translateY(50%) rotate(-135deg);box-shadow:var(--ant-box-shadow-popover-arrow);z-index:0;background:transparent;}.ant-tooltip .ant-tooltip-arrow:before{background:var(--antd-arrow-background-color);}.ant-tooltip-placement-top>.ant-tooltip-arrow,.ant-tooltip-placement-topLeft>.ant-tooltip-arrow,.ant-tooltip-placement-topRight>.ant-tooltip-arrow{bottom:0;transform:translateY(100%) rotate(180deg);}.ant-tooltip-placement-top>.ant-tooltip-arrow{left:50%;transform:translateX(-50%) translateY(100%) rotate(180deg);}.ant-tooltip-placement-topLeft{--arrow-offset-horizontal:var(--ant-tooltip-arrow-offset-horizontal);}.ant-tooltip-placement-topLeft >.ant-tooltip-arrow{left:var(--ant-tooltip-arrow-offset-horizontal);}.ant-tooltip-placement-topRight{--arrow-offset-horizontal:calc(100% - var(--ant-tooltip-arrow-offset-horizontal));}.ant-tooltip-placement-topRight >.ant-tooltip-arrow{right:var(--ant-tooltip-arrow-offset-horizontal);}.ant-tooltip-placement-bottom>.ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft>.ant-tooltip-arrow,.ant-tooltip-placement-bottomRight>.ant-tooltip-arrow{top:0;transform:translateY(-100%);}.ant-tooltip-placement-bottom>.ant-tooltip-arrow{left:50%;transform:translateX(-50%) translateY(-100%);}.ant-tooltip-placement-bottomLeft{--arrow-offset-horizontal:var(--ant-tooltip-arrow-offset-horizontal);}.ant-tooltip-placement-bottomLeft >.ant-tooltip-arrow{left:var(--ant-tooltip-arrow-offset-horizontal);}.ant-tooltip-placement-bottomRight{--arrow-offset-horizontal:calc(100% - var(--ant-tooltip-arrow-offset-horizontal));}.ant-tooltip-placement-bottomRight >.ant-tooltip-arrow{right:var(--ant-tooltip-arrow-offset-horizontal);}.ant-tooltip-placement-left>.ant-tooltip-arrow,.ant-tooltip-placement-leftTop>.ant-tooltip-arrow,.ant-tooltip-placement-leftBottom>.ant-tooltip-arrow{right:0;transform:translateX(100%) rotate(90deg);}.ant-tooltip-placement-left>.ant-tooltip-arrow{top:50%;transform:translateY(-50%) translateX(100%) rotate(90deg);}.ant-tooltip-placement-leftTop>.ant-tooltip-arrow{top:var(--ant-tooltip-arrow-offset-vertical);}.ant-tooltip-placement-leftBottom>.ant-tooltip-arrow{bottom:var(--ant-tooltip-arrow-offset-vertical);}.ant-tooltip-placement-right>.ant-tooltip-arrow,.ant-tooltip-placement-rightTop>.ant-tooltip-arrow,.ant-tooltip-placement-rightBottom>.ant-tooltip-arrow{left:0;transform:translateX(-100%) rotate(-90deg);}.ant-tooltip-placement-right>.ant-tooltip-arrow{top:50%;transform:translateY(-50%) translateX(-100%) rotate(-90deg);}.ant-tooltip-placement-rightTop>.ant-tooltip-arrow{top:var(--ant-tooltip-arrow-offset-vertical);}.ant-tooltip-placement-rightBottom>.ant-tooltip-arrow{bottom:var(--ant-tooltip-arrow-offset-vertical);}.ant-tooltip-pure{position:relative;max-width:none;margin:var(--ant-size-popup-arrow);}.ant-zoom-big-fast-enter,.ant-zoom-big-fast-appear{animation-duration:var(--ant-motion-duration-fast);animation-fill-mode:both;animation-play-state:paused;}.ant-zoom-big-fast-leave{animation-duration:var(--ant-motion-duration-fast);animation-fill-mode:both;animation-play-state:paused;}.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active,.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active{animation-name:antZoomBigIn;animation-play-state:running;}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none;}.ant-zoom-big-fast-enter,.ant-zoom-big-fast-appear{transform:scale(0);opacity:0;animation-timing-function:var(--ant-motion-ease-out-circ);}.ant-zoom-big-fast-enter-prepare,.ant-zoom-big-fast-appear-prepare{transform:none;}.ant-zoom-big-fast-leave{animation-timing-function:var(--ant-motion-ease-in-out-circ);}.ant-select-css-var{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-select-css-var::before,.ant-select-css-var::after{box-sizing:border-box;}.ant-select-css-var [class^="ant-select"],.ant-select-css-var [class*=" ant-select"]{box-sizing:border-box;}.ant-select-css-var [class^="ant-select"]::before,.ant-select-css-var [class*=" ant-select"]::before,.ant-select-css-var [class^="ant-select"]::after,.ant-select-css-var [class*=" ant-select"]::after{box-sizing:border-box;}.ant-select.ant-select-in-form-item{width:100%;}.ant-select{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;font-family:var(--ant-font-family);position:relative;display:inline-flex;cursor:pointer;}.ant-select:not(.ant-select-customize-input) .ant-select-selector{position:relative;transition:all var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out);}.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer;}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:text;}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto;color:inherit;height:100%;}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:not-allowed;}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed;}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{margin:0;padding:0;background:transparent;border:none;outline:none;appearance:none;font-family:inherit;}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button{display:none;appearance:none;}.ant-select .ant-select-selection-item{flex:1;font-weight:normal;position:relative;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.ant-select .ant-select-selection-item >.ant-typography{display:inline;}.ant-select .ant-select-selection-placeholder{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;color:var(--ant-color-text-placeholder);pointer-events:none;}.ant-select .ant-select-arrow{display:flex;align-items:center;color:var(--ant-color-text-quaternary);font-style:normal;line-height:1;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:50%;inset-inline-start:auto;inset-inline-end:calc(var(--ant-padding-sm) - 1px);height:var(--ant-font-size-icon);margin-top:calc(var(--ant-font-size-icon) * -1 / 2);font-size:var(--ant-font-size-icon);pointer-events:none;transition:opacity var(--ant-motion-duration-slow) ease;}.ant-select .ant-select-arrow >*{line-height:1;}.ant-select .ant-select-arrow svg{display:inline-block;}.ant-select .ant-select-arrow .anticon{vertical-align:top;transition:transform var(--ant-motion-duration-slow);}.ant-select .ant-select-arrow .anticon >svg{vertical-align:top;}.ant-select .ant-select-arrow .anticon:not(.ant-select-suffix){pointer-events:auto;}.ant-select-disabled .ant-select .ant-select-arrow{cursor:not-allowed;}.ant-select .ant-select-arrow >*:not(:last-child){margin-inline-end:8px;}.ant-select .ant-select-selection-wrap{display:flex;width:100%;position:relative;min-width:0;}.ant-select .ant-select-selection-wrap:after{content:"\a0";width:0;overflow:hidden;}.ant-select .ant-select-prefix{flex:none;margin-inline-end:var(--ant-select-select-affix-padding);}.ant-select .ant-select-clear{position:absolute;top:50%;inset-inline-start:auto;inset-inline-end:calc(var(--ant-padding-sm) - 1px);z-index:1;display:inline-block;width:var(--ant-font-size-icon);height:var(--ant-font-size-icon);margin-top:calc(var(--ant-font-size-icon) * -1 / 2);color:var(--ant-color-text-quaternary);font-size:var(--ant-font-size-icon);font-style:normal;line-height:1;text-align:center;text-transform:none;cursor:pointer;opacity:0;transition:color var(--ant-motion-duration-mid) ease,opacity var(--ant-motion-duration-slow) ease;text-rendering:auto;}.ant-select .ant-select-clear:before{display:block;}.ant-select .ant-select-clear:hover{color:var(--ant-color-icon);}@media(hover:none){.ant-select .ant-select-clear{opacity:1;background:var(--ant-color-bg-base);border-radius:50%;}}.ant-select:hover .ant-select-clear{opacity:1;background:var(--ant-color-bg-base);border-radius:50%;}.ant-select-status-error.ant-select-has-feedback .ant-select-clear,.ant-select-status-warning.ant-select-has-feedback .ant-select-clear,.ant-select-status-success.ant-select-has-feedback .ant-select-clear,.ant-select-status-validating.ant-select-has-feedback .ant-select-clear{inset-inline-end:calc(calc(var(--ant-padding-sm) - 1px) + var(--ant-font-size) + var(--ant-padding-xs));}.ant-select-single{font-size:var(--ant-font-size);height:var(--ant-control-height);}.ant-select-single .ant-select-selector{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;font-family:inherit;display:flex;border-radius:var(--ant-border-radius);flex:1 1 auto;}.ant-select-single .ant-select-selector .ant-select-selection-wrap:after{line-height:calc(var(--ant-control-height) - var(--ant-line-width) * 2);}.ant-select-single .ant-select-selector .ant-select-selection-search{position:absolute;inset:0;width:100%;}.ant-select-single .ant-select-selector .ant-select-selection-search-input{width:100%;-webkit-appearance:textfield;}.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{display:block;padding:0;line-height:calc(var(--ant-control-height) - var(--ant-line-width) * 2);transition:all var(--ant-motion-duration-slow),visibility 0s;align-self:center;}.ant-select-single .ant-select-selector .ant-select-selection-placeholder{transition:none;pointer-events:none;}.ant-select-single .ant-select-selector:after,.ant-select-single .ant-select-selector .ant-select-selection-item:empty:after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder:empty:after{display:inline-block;width:0;visibility:hidden;content:"\a0";}.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-show-arrow .ant-select-selection-search,.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-inline-end:var(--ant-select-show-arrow-padding-inline-end);}.ant-select-single.ant-select-open .ant-select-selection-item{color:var(--ant-color-text-placeholder);}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:100%;align-items:center;padding:0 calc(var(--ant-padding-sm) - 1px);}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:calc(var(--ant-control-height) - var(--ant-line-width) * 2);font-size:var(--ant-font-size);}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector:after{line-height:calc(var(--ant-control-height) - var(--ant-line-width) * 2);}.ant-select-single.ant-select-customize-input .ant-select-selector:after{display:none;}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%;}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{position:absolute;inset-inline-start:0;inset-inline-end:0;padding:0 calc(var(--ant-padding-sm) - 1px);}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none;}.ant-select-single.ant-select-sm{font-size:var(--ant-font-size);height:var(--ant-control-height-sm);}.ant-select-single.ant-select-sm .ant-select-selector{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;font-family:inherit;display:flex;border-radius:var(--ant-border-radius-sm);flex:1 1 auto;}.ant-select-single.ant-select-sm .ant-select-selector .ant-select-selection-wrap:after{line-height:calc(var(--ant-control-height-sm) - var(--ant-line-width) * 2);}.ant-select-single.ant-select-sm .ant-select-selector .ant-select-selection-search{position:absolute;inset:0;width:100%;}.ant-select-single.ant-select-sm .ant-select-selector .ant-select-selection-search-input{width:100%;-webkit-appearance:textfield;}.ant-select-single.ant-select-sm .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-sm .ant-select-selector .ant-select-selection-placeholder{display:block;padding:0;line-height:calc(var(--ant-control-height-sm) - var(--ant-line-width) * 2);transition:all var(--ant-motion-duration-slow),visibility 0s;align-self:center;}.ant-select-single.ant-select-sm .ant-select-selector .ant-select-selection-placeholder{transition:none;pointer-events:none;}.ant-select-single.ant-select-sm .ant-select-selector:after,.ant-select-single.ant-select-sm .ant-select-selector .ant-select-selection-item:empty:after,.ant-select-single.ant-select-sm .ant-select-selector .ant-select-selection-placeholder:empty:after{display:inline-block;width:0;visibility:hidden;content:"\a0";}.ant-select-single.ant-select-sm.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-sm.ant-select-show-arrow .ant-select-selection-search,.ant-select-single.ant-select-sm.ant-select-show-arrow .ant-select-selection-placeholder{padding-inline-end:var(--ant-select-show-arrow-padding-inline-end);}.ant-select-single.ant-select-sm.ant-select-open .ant-select-selection-item{color:var(--ant-color-text-placeholder);}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:100%;align-items:center;padding:0 calc(var(--ant-padding-sm) - 1px);}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:calc(var(--ant-control-height-sm) - var(--ant-line-width) * 2);font-size:var(--ant-font-size);}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector:after{line-height:calc(var(--ant-control-height-sm) - var(--ant-line-width) * 2);}.ant-select-single.ant-select-sm.ant-select-customize-input .ant-select-selector:after{display:none;}.ant-select-single.ant-select-sm.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%;}.ant-select-single.ant-select-sm.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{position:absolute;inset-inline-start:0;inset-inline-end:0;padding:0 calc(var(--ant-padding-sm) - 1px);}.ant-select-single.ant-select-sm.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none;}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{padding:0 calc(var(--ant-control-padding-horizontal-sm) - var(--ant-line-width));}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{inset-inline-end:calc(calc(var(--ant-control-padding-horizontal-sm) - var(--ant-line-width)) + var(--ant-font-size) * 1.5);}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-inline-end:calc(var(--ant-font-size) * 1.5);}.ant-select-single.ant-select-lg{font-size:var(--ant-font-size-lg);height:var(--ant-select-single-item-height-lg);}.ant-select-single.ant-select-lg .ant-select-selector{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size-lg);line-height:var(--ant-line-height);list-style:none;font-family:inherit;display:flex;border-radius:var(--ant-border-radius-lg);flex:1 1 auto;}.ant-select-single.ant-select-lg .ant-select-selector .ant-select-selection-wrap:after{line-height:calc(var(--ant-select-single-item-height-lg) - var(--ant-line-width) * 2);}.ant-select-single.ant-select-lg .ant-select-selector .ant-select-selection-search{position:absolute;inset:0;width:100%;}.ant-select-single.ant-select-lg .ant-select-selector .ant-select-selection-search-input{width:100%;-webkit-appearance:textfield;}.ant-select-single.ant-select-lg .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-lg .ant-select-selector .ant-select-selection-placeholder{display:block;padding:0;line-height:calc(var(--ant-select-single-item-height-lg) - var(--ant-line-width) * 2);transition:all var(--ant-motion-duration-slow),visibility 0s;align-self:center;}.ant-select-single.ant-select-lg .ant-select-selector .ant-select-selection-placeholder{transition:none;pointer-events:none;}.ant-select-single.ant-select-lg .ant-select-selector:after,.ant-select-single.ant-select-lg .ant-select-selector .ant-select-selection-item:empty:after,.ant-select-single.ant-select-lg .ant-select-selector .ant-select-selection-placeholder:empty:after{display:inline-block;width:0;visibility:hidden;content:"\a0";}.ant-select-single.ant-select-lg.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-lg.ant-select-show-arrow .ant-select-selection-search,.ant-select-single.ant-select-lg.ant-select-show-arrow .ant-select-selection-placeholder{padding-inline-end:var(--ant-select-show-arrow-padding-inline-end);}.ant-select-single.ant-select-lg.ant-select-open .ant-select-selection-item{color:var(--ant-color-text-placeholder);}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:100%;align-items:center;padding:0 calc(var(--ant-padding-sm) - 1px);}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:calc(var(--ant-select-single-item-height-lg) - var(--ant-line-width) * 2);font-size:var(--ant-font-size-lg);}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector:after{line-height:calc(var(--ant-select-single-item-height-lg) - var(--ant-line-width) * 2);}.ant-select-single.ant-select-lg.ant-select-customize-input .ant-select-selector:after{display:none;}.ant-select-single.ant-select-lg.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%;}.ant-select-single.ant-select-lg.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{position:absolute;inset-inline-start:0;inset-inline-end:0;padding:0 calc(var(--ant-padding-sm) - 1px);}.ant-select-single.ant-select-lg.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none;}.ant-select-multiple .ant-select-selection-overflow{position:relative;display:flex;flex:auto;flex-wrap:wrap;max-width:100%;}.ant-select-multiple .ant-select-selection-overflow-item{flex:none;align-self:center;max-width:100%;display:inline-flex;}.ant-select-multiple .ant-select-selection-overflow .ant-select-selection-item{display:flex;align-self:center;flex:none;box-sizing:border-box;max-width:100%;margin-block:var(--ant-select-internal_fixed_item_margin);border-radius:var(--ant-border-radius-sm);cursor:default;transition:font-size var(--ant-motion-duration-slow),line-height var(--ant-motion-duration-slow),height var(--ant-motion-duration-slow);margin-inline-end:calc(var(--ant-select-internal_fixed_item_margin) * 2);padding-inline-start:var(--ant-padding-xs);padding-inline-end:calc(var(--ant-padding-xs) / 2);}.ant-select-disabled.ant-select-multiple .ant-select-selection-overflow .ant-select-selection-item{color:var(--ant-select-multiple-item-color-disabled);border-color:var(--ant-select-multiple-item-border-color-disabled);cursor:not-allowed;}.ant-select-multiple .ant-select-selection-overflow .ant-select-selection-item-content{display:inline-block;margin-inline-end:calc(var(--ant-padding-xs) / 2);overflow:hidden;white-space:pre;text-overflow:ellipsis;}.ant-select-multiple .ant-select-selection-overflow .ant-select-selection-item-remove{display:inline-flex;align-items:center;color:var(--ant-color-icon);font-style:normal;line-height:inherit;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;font-size:10px;cursor:pointer;}.ant-select-multiple .ant-select-selection-overflow .ant-select-selection-item-remove >*{line-height:1;}.ant-select-multiple .ant-select-selection-overflow .ant-select-selection-item-remove svg{display:inline-block;}.ant-select-multiple .ant-select-selection-overflow .ant-select-selection-item-remove >.anticon{vertical-align:-0.2em;}.ant-select-multiple .ant-select-selection-overflow .ant-select-selection-item-remove:hover{color:var(--ant-color-icon-hover);}.ant-select-multiple .ant-select-selector{display:flex;align-items:center;width:100%;height:100%;padding-inline:max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px);padding-block:max(calc(max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px) - var(--ant-select-internal_fixed_item_margin)),0px);border-radius:var(--ant-border-radius);}.ant-select-disabled.ant-select-multiple .ant-select-selector{background:var(--ant-select-multiple-selector-bg-disabled);cursor:not-allowed;}.ant-select-multiple .ant-select-selector:after{display:inline-block;width:0;margin:var(--ant-select-internal_fixed_item_margin) 0;line-height:var(--ant-select-multiple-item-height);visibility:hidden;content:"\a0";}.ant-select-multiple .ant-select-selection-item{height:var(--ant-select-multiple-item-height);line-height:calc(var(--ant-select-multiple-item-height) - var(--ant-line-width) * 2);}.ant-select-multiple .ant-select-selection-wrap{align-self:flex-start;}.ant-select-multiple .ant-select-selection-wrap:after{line-height:var(--ant-select-multiple-item-height);margin-block:var(--ant-select-internal_fixed_item_margin);}.ant-select-multiple .ant-select-prefix{margin-inline-start:calc(calc(var(--ant-padding-sm) - 1px) - max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px));}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search,.ant-select-multiple .ant-select-prefix+.ant-select-selection-wrap .ant-select-selection-search{margin-inline-start:0;}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-placeholder,.ant-select-multiple .ant-select-prefix+.ant-select-selection-wrap .ant-select-selection-placeholder{inset-inline-start:0;}.ant-select-multiple .ant-select-selection-overflow-item-suffix{min-height:var(--ant-select-multiple-item-height);margin-block:var(--ant-select-internal_fixed_item_margin);}.ant-select-multiple .ant-select-selection-search{display:inline-flex;position:relative;max-width:100%;margin-inline-start:calc(calc(var(--ant-padding-sm) - 1px) - calc((var(--ant-control-height) - var(--ant-select-multiple-item-height)) / 2 - var(--ant-line-width)));}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{height:var(--ant-select-multiple-item-height);font-family:var(--ant-font-family);line-height:var(--ant-select-multiple-item-height);transition:all var(--ant-motion-duration-slow);}.ant-select-multiple .ant-select-selection-search-input{width:100%;min-width:4.1px;}.ant-select-multiple .ant-select-selection-search-mirror{position:absolute;top:0;inset-inline-start:0;inset-inline-end:auto;z-index:999;white-space:pre;visibility:hidden;}.ant-select-multiple .ant-select-selection-placeholder{position:absolute;top:50%;inset-inline-start:calc(calc(var(--ant-padding-sm) - 1px) - max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px));inset-inline-end:calc(var(--ant-padding-sm) - 1px);transform:translateY(-50%);transition:all var(--ant-motion-duration-slow);}.ant-select-multiple{font-size:var(--ant-font-size);}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text;}.ant-select-multiple.ant-select-show-arrow .ant-select-selector,.ant-select-multiple.ant-select-allow-clear .ant-select-selector{padding-inline-end:calc(var(--ant-font-size-icon) + var(--ant-control-padding-horizontal));}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow{position:relative;display:flex;flex:auto;flex-wrap:wrap;max-width:100%;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow-item{flex:none;align-self:center;max-width:100%;display:inline-flex;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow .ant-select-selection-item{display:flex;align-self:center;flex:none;box-sizing:border-box;max-width:100%;margin-block:var(--ant-select-internal_fixed_item_margin);border-radius:var(--ant-border-radius-xs);cursor:default;transition:font-size var(--ant-motion-duration-slow),line-height var(--ant-motion-duration-slow),height var(--ant-motion-duration-slow);margin-inline-end:calc(var(--ant-select-internal_fixed_item_margin) * 2);padding-inline-start:var(--ant-padding-xs);padding-inline-end:calc(var(--ant-padding-xs) / 2);}.ant-select-disabled.ant-select-multiple.ant-select-sm .ant-select-selection-overflow .ant-select-selection-item{color:var(--ant-select-multiple-item-color-disabled);border-color:var(--ant-select-multiple-item-border-color-disabled);cursor:not-allowed;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow .ant-select-selection-item-content{display:inline-block;margin-inline-end:calc(var(--ant-padding-xs) / 2);overflow:hidden;white-space:pre;text-overflow:ellipsis;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow .ant-select-selection-item-remove{display:inline-flex;align-items:center;color:var(--ant-color-icon);font-style:normal;line-height:inherit;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;font-size:10px;cursor:pointer;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow .ant-select-selection-item-remove >*{line-height:1;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow .ant-select-selection-item-remove svg{display:inline-block;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow .ant-select-selection-item-remove >.anticon{vertical-align:-0.2em;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow .ant-select-selection-item-remove:hover{color:var(--ant-color-icon-hover);}.ant-select-multiple.ant-select-sm .ant-select-selector{display:flex;align-items:center;width:100%;height:100%;padding-inline:max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px);padding-block:max(calc(max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px) - var(--ant-select-internal_fixed_item_margin)),0px);border-radius:var(--ant-border-radius-sm);}.ant-select-disabled.ant-select-multiple.ant-select-sm .ant-select-selector{background:var(--ant-select-multiple-selector-bg-disabled);cursor:not-allowed;}.ant-select-multiple.ant-select-sm .ant-select-selector:after{display:inline-block;width:0;margin:var(--ant-select-internal_fixed_item_margin) 0;line-height:var(--ant-select-multiple-item-height-sm);visibility:hidden;content:"\a0";}.ant-select-multiple.ant-select-sm .ant-select-selection-item{height:var(--ant-select-multiple-item-height-sm);line-height:calc(var(--ant-select-multiple-item-height-sm) - var(--ant-line-width) * 2);}.ant-select-multiple.ant-select-sm .ant-select-selection-wrap{align-self:flex-start;}.ant-select-multiple.ant-select-sm .ant-select-selection-wrap:after{line-height:var(--ant-select-multiple-item-height-sm);margin-block:var(--ant-select-internal_fixed_item_margin);}.ant-select-multiple.ant-select-sm .ant-select-prefix{margin-inline-start:calc(calc(var(--ant-padding-sm) - 1px) - max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px));}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search,.ant-select-multiple.ant-select-sm .ant-select-prefix+.ant-select-selection-wrap .ant-select-selection-search{margin-inline-start:0;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-placeholder,.ant-select-multiple.ant-select-sm .ant-select-prefix+.ant-select-selection-wrap .ant-select-selection-placeholder{inset-inline-start:0;}.ant-select-multiple.ant-select-sm .ant-select-selection-overflow-item-suffix{min-height:var(--ant-select-multiple-item-height-sm);margin-block:var(--ant-select-internal_fixed_item_margin);}.ant-select-multiple.ant-select-sm .ant-select-selection-search{display:inline-flex;position:relative;max-width:100%;margin-inline-start:calc(calc(var(--ant-padding-sm) - 1px) - calc((var(--ant-control-height-sm) - var(--ant-select-multiple-item-height-sm)) / 2 - var(--ant-line-width)));}.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror{height:var(--ant-select-multiple-item-height-sm);font-family:var(--ant-font-family);line-height:var(--ant-select-multiple-item-height-sm);transition:all var(--ant-motion-duration-slow);}.ant-select-multiple.ant-select-sm .ant-select-selection-search-input{width:100%;min-width:4.1px;}.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror{position:absolute;top:0;inset-inline-start:0;inset-inline-end:auto;z-index:999;white-space:pre;visibility:hidden;}.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{position:absolute;top:50%;inset-inline-start:calc(calc(var(--ant-padding-sm) - 1px) - max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px));inset-inline-end:calc(var(--ant-padding-sm) - 1px);transform:translateY(-50%);transition:all var(--ant-motion-duration-slow);}.ant-select-multiple.ant-select-sm{font-size:var(--ant-font-size);}.ant-select-show-search.ant-select-multiple.ant-select-sm .ant-select-selector{cursor:text;}.ant-select-multiple.ant-select-sm.ant-select-show-arrow .ant-select-selector,.ant-select-multiple.ant-select-sm.ant-select-allow-clear .ant-select-selector{padding-inline-end:calc(var(--ant-font-size-icon) + var(--ant-control-padding-horizontal));}.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{inset-inline:calc(var(--ant-control-padding-horizontal-sm) - var(--ant-line-width));}.ant-select-multiple.ant-select-sm .ant-select-selection-search{margin-inline-start:2px;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow{position:relative;display:flex;flex:auto;flex-wrap:wrap;max-width:100%;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow-item{flex:none;align-self:center;max-width:100%;display:inline-flex;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow .ant-select-selection-item{display:flex;align-self:center;flex:none;box-sizing:border-box;max-width:100%;margin-block:var(--ant-select-internal_fixed_item_margin);border-radius:var(--ant-border-radius);cursor:default;transition:font-size var(--ant-motion-duration-slow),line-height var(--ant-motion-duration-slow),height var(--ant-motion-duration-slow);margin-inline-end:calc(var(--ant-select-internal_fixed_item_margin) * 2);padding-inline-start:var(--ant-padding-xs);padding-inline-end:calc(var(--ant-padding-xs) / 2);}.ant-select-disabled.ant-select-multiple.ant-select-lg .ant-select-selection-overflow .ant-select-selection-item{color:var(--ant-select-multiple-item-color-disabled);border-color:var(--ant-select-multiple-item-border-color-disabled);cursor:not-allowed;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow .ant-select-selection-item-content{display:inline-block;margin-inline-end:calc(var(--ant-padding-xs) / 2);overflow:hidden;white-space:pre;text-overflow:ellipsis;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow .ant-select-selection-item-remove{display:inline-flex;align-items:center;color:var(--ant-color-icon);font-style:normal;line-height:inherit;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:bold;font-size:10px;cursor:pointer;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow .ant-select-selection-item-remove >*{line-height:1;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow .ant-select-selection-item-remove svg{display:inline-block;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow .ant-select-selection-item-remove >.anticon{vertical-align:-0.2em;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow .ant-select-selection-item-remove:hover{color:var(--ant-color-icon-hover);}.ant-select-multiple.ant-select-lg .ant-select-selector{display:flex;align-items:center;width:100%;height:100%;padding-inline:max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px);padding-block:max(calc(max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px) - var(--ant-select-internal_fixed_item_margin)),0px);border-radius:var(--ant-border-radius-lg);}.ant-select-disabled.ant-select-multiple.ant-select-lg .ant-select-selector{background:var(--ant-select-multiple-selector-bg-disabled);cursor:not-allowed;}.ant-select-multiple.ant-select-lg .ant-select-selector:after{display:inline-block;width:0;margin:var(--ant-select-internal_fixed_item_margin) 0;line-height:var(--ant-select-multiple-item-height-lg);visibility:hidden;content:"\a0";}.ant-select-multiple.ant-select-lg .ant-select-selection-item{height:var(--ant-select-multiple-item-height-lg);line-height:calc(var(--ant-select-multiple-item-height-lg) - var(--ant-line-width) * 2);}.ant-select-multiple.ant-select-lg .ant-select-selection-wrap{align-self:flex-start;}.ant-select-multiple.ant-select-lg .ant-select-selection-wrap:after{line-height:var(--ant-select-multiple-item-height-lg);margin-block:var(--ant-select-internal_fixed_item_margin);}.ant-select-multiple.ant-select-lg .ant-select-prefix{margin-inline-start:calc(calc(var(--ant-padding-sm) - 1px) - max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px));}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search,.ant-select-multiple.ant-select-lg .ant-select-prefix+.ant-select-selection-wrap .ant-select-selection-search{margin-inline-start:0;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-placeholder,.ant-select-multiple.ant-select-lg .ant-select-prefix+.ant-select-selection-wrap .ant-select-selection-placeholder{inset-inline-start:0;}.ant-select-multiple.ant-select-lg .ant-select-selection-overflow-item-suffix{min-height:var(--ant-select-multiple-item-height-lg);margin-block:var(--ant-select-internal_fixed_item_margin);}.ant-select-multiple.ant-select-lg .ant-select-selection-search{display:inline-flex;position:relative;max-width:100%;margin-inline-start:calc(calc(var(--ant-padding-sm) - 1px) - calc((var(--ant-control-height-lg) - var(--ant-select-multiple-item-height-lg)) / 2 - var(--ant-line-width)));}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{height:var(--ant-select-multiple-item-height-lg);font-family:var(--ant-font-family);line-height:var(--ant-select-multiple-item-height-lg);transition:all var(--ant-motion-duration-slow);}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input{width:100%;min-width:4.1px;}.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{position:absolute;top:0;inset-inline-start:0;inset-inline-end:auto;z-index:999;white-space:pre;visibility:hidden;}.ant-select-multiple.ant-select-lg .ant-select-selection-placeholder{position:absolute;top:50%;inset-inline-start:calc(calc(var(--ant-padding-sm) - 1px) - max(calc(var(--ant-padding-xxs) - var(--ant-line-width)),0px));inset-inline-end:calc(var(--ant-padding-sm) - 1px);transform:translateY(-50%);transition:all var(--ant-motion-duration-slow);}.ant-select-multiple.ant-select-lg{font-size:var(--ant-font-size-lg);}.ant-select-show-search.ant-select-multiple.ant-select-lg .ant-select-selector{cursor:text;}.ant-select-multiple.ant-select-lg.ant-select-show-arrow .ant-select-selector,.ant-select-multiple.ant-select-lg.ant-select-allow-clear .ant-select-selector{padding-inline-end:calc(var(--ant-font-size-icon) + var(--ant-control-padding-horizontal));}.ant-select-dropdown{box-sizing:border-box;margin:0;padding:var(--ant-padding-xxs);color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;font-family:var(--ant-font-family);position:absolute;top:-9999px;z-index:var(--ant-select-z-index-popup);overflow:hidden;font-variant:initial;background-color:var(--ant-color-bg-elevated);border-radius:var(--ant-border-radius-lg);outline:none;box-shadow:var(--ant-box-shadow-secondary);}.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpIn;}.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topRight,.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topRight{animation-name:antSlideDownIn;}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpOut;}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topRight{animation-name:antSlideDownOut;}.ant-select-dropdown-hidden{display:none;}.ant-select-dropdown .ant-select-item{position:relative;display:block;min-height:var(--ant-select-option-height);padding:var(--ant-select-option-padding);color:var(--ant-color-text);font-weight:normal;font-size:var(--ant-select-option-font-size);line-height:var(--ant-select-option-line-height);box-sizing:border-box;cursor:pointer;transition:background var(--ant-motion-duration-slow) ease;border-radius:var(--ant-border-radius-sm);}.ant-select-dropdown .ant-select-item-group{color:var(--ant-color-text-description);font-size:var(--ant-font-size-sm);cursor:default;}.ant-select-dropdown .ant-select-item-option{display:flex;}.ant-select-dropdown .ant-select-item-option-content{flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.ant-select-dropdown .ant-select-item-option-state{flex:none;display:flex;align-items:center;}.ant-select-dropdown .ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:var(--ant-select-option-active-bg);}.ant-select-dropdown .ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:var(--ant-select-option-selected-color);font-weight:var(--ant-select-option-selected-font-weight);background-color:var(--ant-select-option-selected-bg);}.ant-select-dropdown .ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state{color:var(--ant-color-primary);}.ant-select-dropdown .ant-select-item-option-disabled{color:var(--ant-color-text-disabled);cursor:not-allowed;}.ant-select-dropdown .ant-select-item-option-disabled.ant-select-item-option-selected{background-color:var(--ant-color-bg-container-disabled);}.ant-select-dropdown .ant-select-item-option-grouped{padding-inline-start:calc(var(--ant-control-padding-horizontal) * 2);}.ant-select-dropdown .ant-select-item-empty{position:relative;display:block;min-height:var(--ant-select-option-height);padding:var(--ant-select-option-padding);color:var(--ant-color-text-disabled);font-weight:normal;font-size:var(--ant-select-option-font-size);line-height:var(--ant-select-option-line-height);box-sizing:border-box;}.ant-select-dropdown .ant-select-item-option-selected:has(+ .ant-select-item-option-selected){border-end-start-radius:0;border-end-end-radius:0;}.ant-select-dropdown .ant-select-item-option-selected:has(+ .ant-select-item-option-selected)+.ant-select-item-option-selected{border-start-start-radius:0;border-start-end-radius:0;}.ant-select-dropdown-rtl{direction:rtl;}.ant-slide-up-enter,.ant-slide-up-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-up-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-up-enter.ant-slide-up-enter-active,.ant-slide-up-appear.ant-slide-up-appear-active{animation-name:antSlideUpIn;animation-play-state:running;}.ant-slide-up-leave.ant-slide-up-leave-active{animation-name:antSlideUpOut;animation-play-state:running;pointer-events:none;}.ant-slide-up-enter,.ant-slide-up-appear{transform:scale(0);transform-origin:0% 0%;opacity:0;animation-timing-function:var(--ant-motion-ease-out-quint);}.ant-slide-up-enter-prepare,.ant-slide-up-appear-prepare{transform:scale(1);}.ant-slide-up-leave{animation-timing-function:var(--ant-motion-ease-in-quint);}.ant-slide-down-enter,.ant-slide-down-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-down-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-down-enter.ant-slide-down-enter-active,.ant-slide-down-appear.ant-slide-down-appear-active{animation-name:antSlideDownIn;animation-play-state:running;}.ant-slide-down-leave.ant-slide-down-leave-active{animation-name:antSlideDownOut;animation-play-state:running;pointer-events:none;}.ant-slide-down-enter,.ant-slide-down-appear{transform:scale(0);transform-origin:0% 0%;opacity:0;animation-timing-function:var(--ant-motion-ease-out-quint);}.ant-slide-down-enter-prepare,.ant-slide-down-appear-prepare{transform:scale(1);}.ant-slide-down-leave{animation-timing-function:var(--ant-motion-ease-in-quint);}.ant-move-up-enter,.ant-move-up-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-move-up-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-move-up-enter.ant-move-up-enter-active,.ant-move-up-appear.ant-move-up-appear-active{animation-name:antMoveUpIn;animation-play-state:running;}.ant-move-up-leave.ant-move-up-leave-active{animation-name:antMoveUpOut;animation-play-state:running;pointer-events:none;}.ant-move-up-enter,.ant-move-up-appear{opacity:0;animation-timing-function:var(--ant-motion-ease-out-circ);}.ant-move-up-leave{animation-timing-function:var(--ant-motion-ease-in-out-circ);}.ant-move-down-enter,.ant-move-down-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-move-down-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-move-down-enter.ant-move-down-enter-active,.ant-move-down-appear.ant-move-down-appear-active{animation-name:antMoveDownIn;animation-play-state:running;}.ant-move-down-leave.ant-move-down-leave-active{animation-name:antMoveDownOut;animation-play-state:running;pointer-events:none;}.ant-move-down-enter,.ant-move-down-appear{opacity:0;animation-timing-function:var(--ant-motion-ease-out-circ);}.ant-move-down-leave{animation-timing-function:var(--ant-motion-ease-in-out-circ);}.ant-select-rtl{direction:rtl;}.ant-select-compact-item:not(.ant-select-compact-last-item){margin-inline-end:calc(var(--ant-line-width) * -1);}.ant-select-compact-item:hover>*,.ant-select-compact-item:active>*{z-index:2;}.ant-select-compact-item.ant-select-focused{z-index:2;}.ant-select-compact-item[disabled]>*{z-index:0;}.ant-select-compact-item:not(.ant-select-compact-first-item):not(.ant-select-compact-last-item)>.ant-select-selector{border-radius:0;}.ant-select-compact-item:not(.ant-select-compact-last-item).ant-select-compact-first-item>.ant-select-selector,.ant-select-compact-item:not(.ant-select-compact-last-item).ant-select-compact-first-item.ant-select-sm>.ant-select-selector,.ant-select-compact-item:not(.ant-select-compact-last-item).ant-select-compact-first-item.ant-select-lg>.ant-select-selector{border-start-end-radius:0;border-end-end-radius:0;}.ant-select-compact-item:not(.ant-select-compact-first-item).ant-select-compact-last-item>.ant-select-selector,.ant-select-compact-item:not(.ant-select-compact-first-item).ant-select-compact-last-item.ant-select-sm>.ant-select-selector,.ant-select-compact-item:not(.ant-select-compact-first-item).ant-select-compact-last-item.ant-select-lg>.ant-select-selector{border-start-start-radius:0;border-end-start-radius:0;}.ant-select-outlined:not(.ant-select-customize-input) .ant-select-selector{border:var(--ant-line-width) var(--ant-line-type) var(--ant-color-border);background:var(--ant-select-selector-bg);}.ant-select-outlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border-color:var(--ant-select-hover-border-color);}.ant-select-focused.ant-select-outlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{border-color:var(--ant-select-active-border-color);box-shadow:0 0 0 var(--ant-control-outline-width) var(--ant-select-active-outline-color);outline:0;}.ant-select-outlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-prefix{color:var(--ant-color-text);}.ant-select-outlined.ant-select-status-error:not(.ant-select-customize-input) .ant-select-selector{border:var(--ant-line-width) var(--ant-line-type) var(--ant-color-error);background:var(--ant-select-selector-bg);}.ant-select-outlined.ant-select-status-error:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border-color:var(--ant-color-error-hover);}.ant-select-focused.ant-select-outlined.ant-select-status-error:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{border-color:var(--ant-color-error);box-shadow:0 0 0 var(--ant-control-outline-width) var(--ant-color-error-outline);outline:0;}.ant-select-outlined.ant-select-status-error:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-prefix{color:var(--ant-color-error);}.ant-select-outlined.ant-select-status-warning:not(.ant-select-customize-input) .ant-select-selector{border:var(--ant-line-width) var(--ant-line-type) var(--ant-color-warning);background:var(--ant-select-selector-bg);}.ant-select-outlined.ant-select-status-warning:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border-color:var(--ant-color-warning-hover);}.ant-select-focused.ant-select-outlined.ant-select-status-warning:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{border-color:var(--ant-color-warning);box-shadow:0 0 0 var(--ant-control-outline-width) var(--ant-color-warning-outline);outline:0;}.ant-select-outlined.ant-select-status-warning:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-prefix{color:var(--ant-color-warning);}.ant-select-outlined.ant-select-disabled:not(.ant-select-customize-input) .ant-select-selector{background:var(--ant-color-bg-container-disabled);color:var(--ant-color-text-disabled);}.ant-select-outlined.ant-select-multiple .ant-select-selection-item{background:var(--ant-select-multiple-item-bg);border:var(--ant-line-width) var(--ant-line-type) var(--ant-select-multiple-item-border-color);}.ant-select-filled:not(.ant-select-customize-input) .ant-select-selector{background:var(--ant-color-fill-tertiary);border:var(--ant-line-width) var(--ant-line-type) transparent;color:var(--ant-color-text);}.ant-select-filled:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{background:var(--ant-color-fill-secondary);}.ant-select-focused.ant-select-filled:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{background:var(--ant-select-selector-bg);border-color:var(--ant-select-active-border-color);outline:0;}.ant-select-filled.ant-select-status-error:not(.ant-select-customize-input) .ant-select-selector{background:var(--ant-color-error-bg);border:var(--ant-line-width) var(--ant-line-type) transparent;color:var(--ant-color-error);}.ant-select-filled.ant-select-status-error:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{background:var(--ant-color-error-bg-hover);}.ant-select-focused.ant-select-filled.ant-select-status-error:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{background:var(--ant-select-selector-bg);border-color:var(--ant-color-error);outline:0;}.ant-select-filled.ant-select-status-warning:not(.ant-select-customize-input) .ant-select-selector{background:var(--ant-color-warning-bg);border:var(--ant-line-width) var(--ant-line-type) transparent;color:var(--ant-color-warning);}.ant-select-filled.ant-select-status-warning:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{background:var(--ant-color-warning-bg-hover);}.ant-select-focused.ant-select-filled.ant-select-status-warning:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{background:var(--ant-select-selector-bg);border-color:var(--ant-color-warning);outline:0;}.ant-select-filled.ant-select-disabled:not(.ant-select-customize-input) .ant-select-selector{border-color:var(--ant-color-border);background:var(--ant-color-bg-container-disabled);color:var(--ant-color-text-disabled);}.ant-select-filled.ant-select-multiple .ant-select-selection-item{background:var(--ant-color-bg-container);border:var(--ant-line-width) var(--ant-line-type) var(--ant-color-split);}.ant-select-borderless .ant-select-selector{background:transparent;border:var(--ant-line-width) var(--ant-line-type) transparent;}.ant-select-borderless.ant-select-disabled:not(.ant-select-customize-input) .ant-select-selector{color:var(--ant-color-text-disabled);}.ant-select-borderless.ant-select-multiple .ant-select-selection-item{background:var(--ant-select-multiple-item-bg);border:var(--ant-line-width) var(--ant-line-type) var(--ant-select-multiple-item-border-color);}.ant-select-borderless.ant-select-status-error .ant-select-prefix,.ant-select-borderless.ant-select-status-error .ant-select-selection-item{color:var(--ant-color-error);}.ant-select-borderless.ant-select-status-warning .ant-select-prefix,.ant-select-borderless.ant-select-status-warning .ant-select-selection-item{color:var(--ant-color-warning);}.ant-select-underlined:not(.ant-select-customize-input) .ant-select-selector{border-width:0 0 var(--ant-line-width) 0;border-style:none none var(--ant-line-type) none;border-color:var(--ant-color-border);background:var(--ant-select-selector-bg);border-radius:0;}.ant-select-underlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border-color:var(--ant-select-hover-border-color);}.ant-select-focused.ant-select-underlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{border-color:var(--ant-select-active-border-color);outline:0;}.ant-select-underlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-prefix{color:var(--ant-color-text);}.ant-select-underlined.ant-select-status-error:not(.ant-select-customize-input) .ant-select-selector{border-width:0 0 var(--ant-line-width) 0;border-style:none none var(--ant-line-type) none;border-color:var(--ant-color-error);background:var(--ant-select-selector-bg);border-radius:0;}.ant-select-underlined.ant-select-status-error:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border-color:var(--ant-color-error-hover);}.ant-select-focused.ant-select-underlined.ant-select-status-error:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{border-color:var(--ant-color-error);outline:0;}.ant-select-underlined.ant-select-status-error:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-prefix{color:var(--ant-color-error);}.ant-select-underlined.ant-select-status-warning:not(.ant-select-customize-input) .ant-select-selector{border-width:0 0 var(--ant-line-width) 0;border-style:none none var(--ant-line-type) none;border-color:var(--ant-color-warning);background:var(--ant-select-selector-bg);border-radius:0;}.ant-select-underlined.ant-select-status-warning:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border-color:var(--ant-color-warning-hover);}.ant-select-focused.ant-select-underlined.ant-select-status-warning:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-selector{border-color:var(--ant-color-warning);outline:0;}.ant-select-underlined.ant-select-status-warning:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer) .ant-select-prefix{color:var(--ant-color-warning);}.ant-select-underlined.ant-select-disabled:not(.ant-select-customize-input) .ant-select-selector{color:var(--ant-color-text-disabled);}.ant-select-underlined.ant-select-multiple .ant-select-selection-item{background:var(--ant-select-multiple-item-bg);border:var(--ant-line-width) var(--ant-line-type) var(--ant-select-multiple-item-border-color);}@keyframes antMoveUpIn{0%{transform:translate3d(0, -100%, 0);transform-origin:0 0;opacity:0;}100%{transform:translate3d(0, 0, 0);transform-origin:0 0;opacity:1;}}@keyframes antMoveUpOut{0%{transform:translate3d(0, 0, 0);transform-origin:0 0;opacity:1;}100%{transform:translate3d(0, -100%, 0);transform-origin:0 0;opacity:0;}}@keyframes antMoveDownIn{0%{transform:translate3d(0, 100%, 0);transform-origin:0 0;opacity:0;}100%{transform:translate3d(0, 0, 0);transform-origin:0 0;opacity:1;}}@keyframes antMoveDownOut{0%{transform:translate3d(0, 0, 0);transform-origin:0 0;opacity:1;}100%{transform:translate3d(0, 100%, 0);transform-origin:0 0;opacity:0;}}.ant-btn{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-btn::before,.ant-btn::after{box-sizing:border-box;}.ant-btn [class^="ant-btn"],.ant-btn [class*=" ant-btn"]{box-sizing:border-box;}.ant-btn [class^="ant-btn"]::before,.ant-btn [class*=" ant-btn"]::before,.ant-btn [class^="ant-btn"]::after,.ant-btn [class*=" ant-btn"]::after{box-sizing:border-box;}.ant-btn{outline:none;position:relative;display:inline-flex;gap:var(--ant-margin-xs);align-items:center;justify-content:center;font-weight:var(--ant-button-font-weight);white-space:nowrap;text-align:center;background-image:none;background:transparent;border:var(--ant-line-width) var(--ant-line-type) transparent;cursor:pointer;transition:all var(--ant-motion-duration-mid) var(--ant-motion-ease-in-out);user-select:none;touch-action:manipulation;color:var(--ant-color-text);}.ant-btn:disabled>*{pointer-events:none;}.ant-btn .ant-btn-icon>svg{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.ant-btn .ant-btn-icon>svg >*{line-height:1;}.ant-btn .ant-btn-icon>svg svg{display:inline-block;}.ant-btn >a{color:currentColor;}.ant-btn:not(:disabled):focus-visible{outline:var(--ant-line-width-focus) solid var(--ant-color-primary-border);outline-offset:1px;transition:outline-offset 0s,outline 0s;}.ant-btn.ant-btn-two-chinese-chars::first-letter{letter-spacing:0.34em;}.ant-btn.ant-btn-two-chinese-chars>*:not(.anticon){margin-inline-end:-0.34em;letter-spacing:0.34em;}.ant-btn.ant-btn-icon-only{padding-inline:0;}.ant-btn.ant-btn-icon-only.ant-btn-compact-item{flex:none;}.ant-btn.ant-btn-icon-only.ant-btn-round{width:auto;}.ant-btn.ant-btn-loading{opacity:var(--ant-opacity-loading);cursor:default;}.ant-btn .ant-btn-loading-icon{transition:width var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),opacity var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out),margin var(--ant-motion-duration-slow) var(--ant-motion-ease-in-out);}.ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-appear-start,.ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-enter-start{margin-inline-end:calc(var(--ant-margin-xs) * -1);}.ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-appear-active,.ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-enter-active{margin-inline-end:0;}.ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-leave-start{margin-inline-end:0;}.ant-btn:not(.ant-btn-icon-end) .ant-btn-loading-icon-motion-leave-active{margin-inline-end:calc(var(--ant-margin-xs) * -1);}.ant-btn-icon-end{flex-direction:row-reverse;}.ant-btn-icon-end .ant-btn-loading-icon-motion-appear-start,.ant-btn-icon-end .ant-btn-loading-icon-motion-enter-start{margin-inline-start:calc(var(--ant-margin-xs) * -1);}.ant-btn-icon-end .ant-btn-loading-icon-motion-appear-active,.ant-btn-icon-end .ant-btn-loading-icon-motion-enter-active{margin-inline-start:0;}.ant-btn-icon-end .ant-btn-loading-icon-motion-leave-start{margin-inline-start:0;}.ant-btn-icon-end .ant-btn-loading-icon-motion-leave-active{margin-inline-start:calc(var(--ant-margin-xs) * -1);}.ant-btn{font-size:var(--ant-button-content-font-size);height:var(--ant-control-height);padding:0px var(--ant-button-padding-inline);border-radius:var(--ant-border-radius);}.ant-btn.ant-btn-icon-only{width:var(--ant-control-height);}.ant-btn.ant-btn-icon-only .anticon{font-size:var(--ant-button-only-icon-size);}.ant-btn.ant-btn-circle.ant-btn{min-width:var(--ant-control-height);padding-inline-start:0;padding-inline-end:0;border-radius:50%;}.ant-btn.ant-btn-round.ant-btn{border-radius:var(--ant-control-height);padding-inline-start:calc(var(--ant-control-height) / 2);padding-inline-end:calc(var(--ant-control-height) / 2);}.ant-btn-sm{font-size:var(--ant-button-content-font-size-sm);height:var(--ant-control-height-sm);padding:0px var(--ant-button-padding-inline-sm);border-radius:var(--ant-border-radius-sm);}.ant-btn-sm.ant-btn-icon-only{width:var(--ant-control-height-sm);}.ant-btn-sm.ant-btn-icon-only .anticon{font-size:var(--ant-button-only-icon-size-sm);}.ant-btn.ant-btn-circle.ant-btn-sm{min-width:var(--ant-control-height-sm);padding-inline-start:0;padding-inline-end:0;border-radius:50%;}.ant-btn.ant-btn-round.ant-btn-sm{border-radius:var(--ant-control-height-sm);padding-inline-start:calc(var(--ant-control-height-sm) / 2);padding-inline-end:calc(var(--ant-control-height-sm) / 2);}.ant-btn-lg{font-size:var(--ant-button-content-font-size-lg);height:var(--ant-control-height-lg);padding:0px var(--ant-button-padding-inline-lg);border-radius:var(--ant-border-radius-lg);}.ant-btn-lg.ant-btn-icon-only{width:var(--ant-control-height-lg);}.ant-btn-lg.ant-btn-icon-only .anticon{font-size:var(--ant-button-only-icon-size-lg);}.ant-btn.ant-btn-circle.ant-btn-lg{min-width:var(--ant-control-height-lg);padding-inline-start:0;padding-inline-end:0;border-radius:50%;}.ant-btn.ant-btn-round.ant-btn-lg{border-radius:var(--ant-control-height-lg);padding-inline-start:calc(var(--ant-control-height-lg) / 2);padding-inline-end:calc(var(--ant-control-height-lg) / 2);}.ant-btn.ant-btn-block{width:100%;}.ant-btn-color-default{color:var(--ant-button-default-color);box-shadow:var(--ant-button-default-shadow);}.ant-btn-color-default.ant-btn-variant-solid{color:var(--ant-button-solid-text-color);background:var(--ant-color-bg-solid);}.ant-btn-color-default.ant-btn-variant-solid:disabled,.ant-btn-color-default.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-default.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-button-solid-text-color);background:var(--ant-color-bg-solid-hover);}.ant-btn-color-default.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-button-solid-text-color);background:var(--ant-color-bg-solid-active);}.ant-btn-color-default.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-default.ant-btn-variant-filled{box-shadow:none;background:var(--ant-color-fill-tertiary);}.ant-btn-color-default.ant-btn-variant-filled:disabled,.ant-btn-color-default.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-default.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-color-fill-secondary);}.ant-btn-color-default.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-color-fill);}.ant-btn-color-default.ant-btn-background-ghost{color:var(--ant-button-default-ghost-color);background:var(--ant-button-ghost-bg);border-color:var(--ant-button-default-ghost-border-color);box-shadow:none;}.ant-btn-color-default.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-button-ghost-bg);}.ant-btn-color-default.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-button-ghost-bg);}.ant-btn-color-default.ant-btn-background-ghost:disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);border-color:var(--ant-color-border);}.ant-btn-color-default.ant-btn-variant-link{color:var(--ant-button-text-text-color);box-shadow:none;}.ant-btn-color-default.ant-btn-variant-link:disabled,.ant-btn-color-default.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-default.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-color-link-hover);background:var(--ant-button-link-hover-bg);}.ant-btn-color-default.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-color-link-active);}.ant-btn-color-primary{color:var(--ant-color-primary);box-shadow:var(--ant-button-primary-shadow);}.ant-btn-color-primary.ant-btn-variant-outlined,.ant-btn-color-primary.ant-btn-variant-dashed{border-color:var(--ant-color-primary);background:var(--ant-color-bg-container);}.ant-btn-color-primary.ant-btn-variant-outlined:disabled,.ant-btn-color-primary.ant-btn-variant-dashed:disabled,.ant-btn-color-primary.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-primary.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-primary.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-primary.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-color-primary-text-hover);border-color:var(--ant-color-primary-hover);background:var(--ant-color-bg-container);}.ant-btn-color-primary.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-primary.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-color-primary-text-active);border-color:var(--ant-color-primary-active);background:var(--ant-color-bg-container);}.ant-btn-color-primary.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-primary.ant-btn-variant-filled{box-shadow:none;background:var(--ant-color-primary-bg);}.ant-btn-color-primary.ant-btn-variant-filled:disabled,.ant-btn-color-primary.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-primary.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-color-primary-bg-hover);}.ant-btn-color-primary.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-color-primary-border);}.ant-btn-color-primary.ant-btn-variant-text{color:var(--ant-color-primary-text);box-shadow:none;}.ant-btn-color-primary.ant-btn-variant-text:disabled,.ant-btn-color-primary.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-primary.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-color-primary-text-hover);background:var(--ant-color-primary-bg);}.ant-btn-color-primary.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-color-primary-text-active);background:var(--ant-color-primary-border);}.ant-btn-color-primary.ant-btn-variant-link{color:var(--ant-color-primary-text);box-shadow:none;}.ant-btn-color-primary.ant-btn-variant-link:disabled,.ant-btn-color-primary.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-primary.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-color-primary-text-hover);background:var(--ant-button-link-hover-bg);}.ant-btn-color-primary.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-color-primary-text-active);}.ant-btn-color-primary.ant-btn-background-ghost{color:var(--ant-color-primary);background:var(--ant-button-ghost-bg);border-color:var(--ant-color-primary);box-shadow:none;}.ant-btn-color-primary.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-button-ghost-bg);color:var(--ant-color-primary-hover);border-color:var(--ant-color-primary-hover);}.ant-btn-color-primary.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-button-ghost-bg);color:var(--ant-color-primary-active);border-color:var(--ant-color-primary-active);}.ant-btn-color-primary.ant-btn-background-ghost:disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);border-color:var(--ant-color-border);}.ant-btn-color-dangerous{color:var(--ant-color-error);box-shadow:var(--ant-button-danger-shadow);}.ant-btn-color-dangerous.ant-btn-variant-solid{color:var(--ant-button-danger-color);background:var(--ant-color-error);}.ant-btn-color-dangerous.ant-btn-variant-solid:disabled,.ant-btn-color-dangerous.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-dangerous.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-color-error-hover);}.ant-btn-color-dangerous.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-color-error-active);}.ant-btn-color-dangerous.ant-btn-variant-outlined,.ant-btn-color-dangerous.ant-btn-variant-dashed{border-color:var(--ant-color-error);background:var(--ant-color-bg-container);}.ant-btn-color-dangerous.ant-btn-variant-outlined:disabled,.ant-btn-color-dangerous.ant-btn-variant-dashed:disabled,.ant-btn-color-dangerous.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-dangerous.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-dangerous.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-dangerous.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-color-error-hover);border-color:var(--ant-color-error-border-hover);}.ant-btn-color-dangerous.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-dangerous.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-color-error-active);border-color:var(--ant-color-error-active);}.ant-btn-color-dangerous.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-dangerous.ant-btn-variant-filled{box-shadow:none;background:var(--ant-color-error-bg);}.ant-btn-color-dangerous.ant-btn-variant-filled:disabled,.ant-btn-color-dangerous.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-dangerous.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-color-error-bg-filled-hover);}.ant-btn-color-dangerous.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-color-error-bg-active);}.ant-btn-color-dangerous.ant-btn-variant-text{color:var(--ant-color-error);box-shadow:none;}.ant-btn-color-dangerous.ant-btn-variant-text:disabled,.ant-btn-color-dangerous.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-dangerous.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-color-error-hover);background:var(--ant-color-error-bg);}.ant-btn-color-dangerous.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-color-error-hover);background:var(--ant-color-error-bg-active);}.ant-btn-color-dangerous.ant-btn-variant-link{color:var(--ant-color-error);box-shadow:none;}.ant-btn-color-dangerous.ant-btn-variant-link:disabled,.ant-btn-color-dangerous.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-dangerous.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-color-error-hover);}.ant-btn-color-dangerous.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-color-error-active);}.ant-btn-color-dangerous.ant-btn-background-ghost{color:var(--ant-color-error);background:var(--ant-button-ghost-bg);border-color:var(--ant-color-error);box-shadow:none;}.ant-btn-color-dangerous.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-button-ghost-bg);color:var(--ant-color-error-hover);border-color:var(--ant-color-error-hover);}.ant-btn-color-dangerous.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-button-ghost-bg);color:var(--ant-color-error-active);border-color:var(--ant-color-error-active);}.ant-btn-color-dangerous.ant-btn-background-ghost:disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);border-color:var(--ant-color-border);}.ant-btn-color-link.ant-btn-variant-link{color:var(--ant-color-link);box-shadow:none;}.ant-btn-color-link.ant-btn-variant-link:disabled,.ant-btn-color-link.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-link.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-color-link-hover);}.ant-btn-color-link.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-color-link-active);}.ant-btn-color-link.ant-btn-background-ghost{color:var(--ant-color-info);background:var(--ant-button-ghost-bg);border-color:var(--ant-color-info);box-shadow:none;}.ant-btn-color-link.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-button-ghost-bg);color:var(--ant-color-info-hover);border-color:var(--ant-color-info-hover);}.ant-btn-color-link.ant-btn-background-ghost:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-button-ghost-bg);color:var(--ant-color-info-active);border-color:var(--ant-color-info-active);}.ant-btn-color-link.ant-btn-background-ghost:disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);border-color:var(--ant-color-border);}.ant-btn-color-blue{color:var(--ant-blue-6);box-shadow:var(--ant-button-blue-shadow-color);}.ant-btn-color-blue.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-blue-6);}.ant-btn-color-blue.ant-btn-variant-solid:disabled,.ant-btn-color-blue.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-blue.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-blue-5);}.ant-btn-color-blue.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-blue-7);}.ant-btn-color-blue.ant-btn-variant-outlined,.ant-btn-color-blue.ant-btn-variant-dashed{border-color:var(--ant-blue-6);background:var(--ant-color-bg-container);}.ant-btn-color-blue.ant-btn-variant-outlined:disabled,.ant-btn-color-blue.ant-btn-variant-dashed:disabled,.ant-btn-color-blue.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-blue.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-blue.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-blue.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-blue-5);border-color:var(--ant-blue-5);background:var(--ant-color-bg-container);}.ant-btn-color-blue.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-blue.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-blue-7);border-color:var(--ant-blue-7);background:var(--ant-color-bg-container);}.ant-btn-color-blue.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-blue.ant-btn-variant-filled{box-shadow:none;background:var(--ant-blue-1);}.ant-btn-color-blue.ant-btn-variant-filled:disabled,.ant-btn-color-blue.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-blue.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-blue-2);}.ant-btn-color-blue.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-blue-3);}.ant-btn-color-blue.ant-btn-variant-link{color:var(--ant-blue-6);box-shadow:none;}.ant-btn-color-blue.ant-btn-variant-link:disabled,.ant-btn-color-blue.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-blue.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-blue-5);}.ant-btn-color-blue.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-blue-7);}.ant-btn-color-blue.ant-btn-variant-text{color:var(--ant-blue-6);box-shadow:none;}.ant-btn-color-blue.ant-btn-variant-text:disabled,.ant-btn-color-blue.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-blue.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-blue-5);background:var(--ant-blue-1);}.ant-btn-color-blue.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-blue-7);background:var(--ant-blue-3);}.ant-btn-color-purple{color:var(--ant-purple-6);box-shadow:var(--ant-button-purple-shadow-color);}.ant-btn-color-purple.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-purple-6);}.ant-btn-color-purple.ant-btn-variant-solid:disabled,.ant-btn-color-purple.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-purple.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-purple-5);}.ant-btn-color-purple.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-purple-7);}.ant-btn-color-purple.ant-btn-variant-outlined,.ant-btn-color-purple.ant-btn-variant-dashed{border-color:var(--ant-purple-6);background:var(--ant-color-bg-container);}.ant-btn-color-purple.ant-btn-variant-outlined:disabled,.ant-btn-color-purple.ant-btn-variant-dashed:disabled,.ant-btn-color-purple.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-purple.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-purple.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-purple.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-purple-5);border-color:var(--ant-purple-5);background:var(--ant-color-bg-container);}.ant-btn-color-purple.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-purple.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-purple-7);border-color:var(--ant-purple-7);background:var(--ant-color-bg-container);}.ant-btn-color-purple.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-purple.ant-btn-variant-filled{box-shadow:none;background:var(--ant-purple-1);}.ant-btn-color-purple.ant-btn-variant-filled:disabled,.ant-btn-color-purple.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-purple.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-purple-2);}.ant-btn-color-purple.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-purple-3);}.ant-btn-color-purple.ant-btn-variant-link{color:var(--ant-purple-6);box-shadow:none;}.ant-btn-color-purple.ant-btn-variant-link:disabled,.ant-btn-color-purple.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-purple.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-purple-5);}.ant-btn-color-purple.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-purple-7);}.ant-btn-color-purple.ant-btn-variant-text{color:var(--ant-purple-6);box-shadow:none;}.ant-btn-color-purple.ant-btn-variant-text:disabled,.ant-btn-color-purple.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-purple.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-purple-5);background:var(--ant-purple-1);}.ant-btn-color-purple.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-purple-7);background:var(--ant-purple-3);}.ant-btn-color-cyan{color:var(--ant-cyan-6);box-shadow:var(--ant-button-cyan-shadow-color);}.ant-btn-color-cyan.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-cyan-6);}.ant-btn-color-cyan.ant-btn-variant-solid:disabled,.ant-btn-color-cyan.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-cyan.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-cyan-5);}.ant-btn-color-cyan.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-cyan-7);}.ant-btn-color-cyan.ant-btn-variant-outlined,.ant-btn-color-cyan.ant-btn-variant-dashed{border-color:var(--ant-cyan-6);background:var(--ant-color-bg-container);}.ant-btn-color-cyan.ant-btn-variant-outlined:disabled,.ant-btn-color-cyan.ant-btn-variant-dashed:disabled,.ant-btn-color-cyan.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-cyan.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-cyan.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-cyan.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-cyan-5);border-color:var(--ant-cyan-5);background:var(--ant-color-bg-container);}.ant-btn-color-cyan.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-cyan.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-cyan-7);border-color:var(--ant-cyan-7);background:var(--ant-color-bg-container);}.ant-btn-color-cyan.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-cyan.ant-btn-variant-filled{box-shadow:none;background:var(--ant-cyan-1);}.ant-btn-color-cyan.ant-btn-variant-filled:disabled,.ant-btn-color-cyan.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-cyan.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-cyan-2);}.ant-btn-color-cyan.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-cyan-3);}.ant-btn-color-cyan.ant-btn-variant-link{color:var(--ant-cyan-6);box-shadow:none;}.ant-btn-color-cyan.ant-btn-variant-link:disabled,.ant-btn-color-cyan.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-cyan.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-cyan-5);}.ant-btn-color-cyan.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-cyan-7);}.ant-btn-color-cyan.ant-btn-variant-text{color:var(--ant-cyan-6);box-shadow:none;}.ant-btn-color-cyan.ant-btn-variant-text:disabled,.ant-btn-color-cyan.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-cyan.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-cyan-5);background:var(--ant-cyan-1);}.ant-btn-color-cyan.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-cyan-7);background:var(--ant-cyan-3);}.ant-btn-color-green{color:var(--ant-green-6);box-shadow:var(--ant-button-green-shadow-color);}.ant-btn-color-green.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-green-6);}.ant-btn-color-green.ant-btn-variant-solid:disabled,.ant-btn-color-green.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-green.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-green-5);}.ant-btn-color-green.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-green-7);}.ant-btn-color-green.ant-btn-variant-outlined,.ant-btn-color-green.ant-btn-variant-dashed{border-color:var(--ant-green-6);background:var(--ant-color-bg-container);}.ant-btn-color-green.ant-btn-variant-outlined:disabled,.ant-btn-color-green.ant-btn-variant-dashed:disabled,.ant-btn-color-green.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-green.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-green.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-green.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-green-5);border-color:var(--ant-green-5);background:var(--ant-color-bg-container);}.ant-btn-color-green.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-green.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-green-7);border-color:var(--ant-green-7);background:var(--ant-color-bg-container);}.ant-btn-color-green.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-green.ant-btn-variant-filled{box-shadow:none;background:var(--ant-green-1);}.ant-btn-color-green.ant-btn-variant-filled:disabled,.ant-btn-color-green.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-green.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-green-2);}.ant-btn-color-green.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-green-3);}.ant-btn-color-green.ant-btn-variant-link{color:var(--ant-green-6);box-shadow:none;}.ant-btn-color-green.ant-btn-variant-link:disabled,.ant-btn-color-green.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-green.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-green-5);}.ant-btn-color-green.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-green-7);}.ant-btn-color-green.ant-btn-variant-text{color:var(--ant-green-6);box-shadow:none;}.ant-btn-color-green.ant-btn-variant-text:disabled,.ant-btn-color-green.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-green.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-green-5);background:var(--ant-green-1);}.ant-btn-color-green.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-green-7);background:var(--ant-green-3);}.ant-btn-color-magenta{color:var(--ant-magenta-6);box-shadow:var(--ant-button-magenta-shadow-color);}.ant-btn-color-magenta.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-magenta-6);}.ant-btn-color-magenta.ant-btn-variant-solid:disabled,.ant-btn-color-magenta.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-magenta.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-magenta-5);}.ant-btn-color-magenta.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-magenta-7);}.ant-btn-color-magenta.ant-btn-variant-outlined,.ant-btn-color-magenta.ant-btn-variant-dashed{border-color:var(--ant-magenta-6);background:var(--ant-color-bg-container);}.ant-btn-color-magenta.ant-btn-variant-outlined:disabled,.ant-btn-color-magenta.ant-btn-variant-dashed:disabled,.ant-btn-color-magenta.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-magenta.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-magenta.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-magenta.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-magenta-5);border-color:var(--ant-magenta-5);background:var(--ant-color-bg-container);}.ant-btn-color-magenta.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-magenta.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-magenta-7);border-color:var(--ant-magenta-7);background:var(--ant-color-bg-container);}.ant-btn-color-magenta.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-magenta.ant-btn-variant-filled{box-shadow:none;background:var(--ant-magenta-1);}.ant-btn-color-magenta.ant-btn-variant-filled:disabled,.ant-btn-color-magenta.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-magenta.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-magenta-2);}.ant-btn-color-magenta.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-magenta-3);}.ant-btn-color-magenta.ant-btn-variant-link{color:var(--ant-magenta-6);box-shadow:none;}.ant-btn-color-magenta.ant-btn-variant-link:disabled,.ant-btn-color-magenta.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-magenta.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-magenta-5);}.ant-btn-color-magenta.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-magenta-7);}.ant-btn-color-magenta.ant-btn-variant-text{color:var(--ant-magenta-6);box-shadow:none;}.ant-btn-color-magenta.ant-btn-variant-text:disabled,.ant-btn-color-magenta.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-magenta.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-magenta-5);background:var(--ant-magenta-1);}.ant-btn-color-magenta.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-magenta-7);background:var(--ant-magenta-3);}.ant-btn-color-pink{color:var(--ant-pink-6);box-shadow:var(--ant-button-pink-shadow-color);}.ant-btn-color-pink.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-pink-6);}.ant-btn-color-pink.ant-btn-variant-solid:disabled,.ant-btn-color-pink.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-pink.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-pink-5);}.ant-btn-color-pink.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-pink-7);}.ant-btn-color-pink.ant-btn-variant-outlined,.ant-btn-color-pink.ant-btn-variant-dashed{border-color:var(--ant-pink-6);background:var(--ant-color-bg-container);}.ant-btn-color-pink.ant-btn-variant-outlined:disabled,.ant-btn-color-pink.ant-btn-variant-dashed:disabled,.ant-btn-color-pink.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-pink.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-pink.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-pink.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-pink-5);border-color:var(--ant-pink-5);background:var(--ant-color-bg-container);}.ant-btn-color-pink.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-pink.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-pink-7);border-color:var(--ant-pink-7);background:var(--ant-color-bg-container);}.ant-btn-color-pink.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-pink.ant-btn-variant-filled{box-shadow:none;background:var(--ant-pink-1);}.ant-btn-color-pink.ant-btn-variant-filled:disabled,.ant-btn-color-pink.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-pink.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-pink-2);}.ant-btn-color-pink.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-pink-3);}.ant-btn-color-pink.ant-btn-variant-link{color:var(--ant-pink-6);box-shadow:none;}.ant-btn-color-pink.ant-btn-variant-link:disabled,.ant-btn-color-pink.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-pink.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-pink-5);}.ant-btn-color-pink.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-pink-7);}.ant-btn-color-pink.ant-btn-variant-text{color:var(--ant-pink-6);box-shadow:none;}.ant-btn-color-pink.ant-btn-variant-text:disabled,.ant-btn-color-pink.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-pink.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-pink-5);background:var(--ant-pink-1);}.ant-btn-color-pink.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-pink-7);background:var(--ant-pink-3);}.ant-btn-color-red{color:var(--ant-red-6);box-shadow:var(--ant-button-red-shadow-color);}.ant-btn-color-red.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-red-6);}.ant-btn-color-red.ant-btn-variant-solid:disabled,.ant-btn-color-red.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-red.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-red-5);}.ant-btn-color-red.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-red-7);}.ant-btn-color-red.ant-btn-variant-outlined,.ant-btn-color-red.ant-btn-variant-dashed{border-color:var(--ant-red-6);background:var(--ant-color-bg-container);}.ant-btn-color-red.ant-btn-variant-outlined:disabled,.ant-btn-color-red.ant-btn-variant-dashed:disabled,.ant-btn-color-red.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-red.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-red.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-red.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-red-5);border-color:var(--ant-red-5);background:var(--ant-color-bg-container);}.ant-btn-color-red.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-red.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-red-7);border-color:var(--ant-red-7);background:var(--ant-color-bg-container);}.ant-btn-color-red.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-red.ant-btn-variant-filled{box-shadow:none;background:var(--ant-red-1);}.ant-btn-color-red.ant-btn-variant-filled:disabled,.ant-btn-color-red.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-red.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-red-2);}.ant-btn-color-red.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-red-3);}.ant-btn-color-red.ant-btn-variant-link{color:var(--ant-red-6);box-shadow:none;}.ant-btn-color-red.ant-btn-variant-link:disabled,.ant-btn-color-red.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-red.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-red-5);}.ant-btn-color-red.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-red-7);}.ant-btn-color-red.ant-btn-variant-text{color:var(--ant-red-6);box-shadow:none;}.ant-btn-color-red.ant-btn-variant-text:disabled,.ant-btn-color-red.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-red.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-red-5);background:var(--ant-red-1);}.ant-btn-color-red.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-red-7);background:var(--ant-red-3);}.ant-btn-color-orange{color:var(--ant-orange-6);box-shadow:var(--ant-button-orange-shadow-color);}.ant-btn-color-orange.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-orange-6);}.ant-btn-color-orange.ant-btn-variant-solid:disabled,.ant-btn-color-orange.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-orange.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-orange-5);}.ant-btn-color-orange.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-orange-7);}.ant-btn-color-orange.ant-btn-variant-outlined,.ant-btn-color-orange.ant-btn-variant-dashed{border-color:var(--ant-orange-6);background:var(--ant-color-bg-container);}.ant-btn-color-orange.ant-btn-variant-outlined:disabled,.ant-btn-color-orange.ant-btn-variant-dashed:disabled,.ant-btn-color-orange.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-orange.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-orange.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-orange.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-orange-5);border-color:var(--ant-orange-5);background:var(--ant-color-bg-container);}.ant-btn-color-orange.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-orange.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-orange-7);border-color:var(--ant-orange-7);background:var(--ant-color-bg-container);}.ant-btn-color-orange.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-orange.ant-btn-variant-filled{box-shadow:none;background:var(--ant-orange-1);}.ant-btn-color-orange.ant-btn-variant-filled:disabled,.ant-btn-color-orange.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-orange.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-orange-2);}.ant-btn-color-orange.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-orange-3);}.ant-btn-color-orange.ant-btn-variant-link{color:var(--ant-orange-6);box-shadow:none;}.ant-btn-color-orange.ant-btn-variant-link:disabled,.ant-btn-color-orange.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-orange.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-orange-5);}.ant-btn-color-orange.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-orange-7);}.ant-btn-color-orange.ant-btn-variant-text{color:var(--ant-orange-6);box-shadow:none;}.ant-btn-color-orange.ant-btn-variant-text:disabled,.ant-btn-color-orange.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-orange.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-orange-5);background:var(--ant-orange-1);}.ant-btn-color-orange.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-orange-7);background:var(--ant-orange-3);}.ant-btn-color-yellow{color:var(--ant-yellow-6);box-shadow:var(--ant-button-yellow-shadow-color);}.ant-btn-color-yellow.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-yellow-6);}.ant-btn-color-yellow.ant-btn-variant-solid:disabled,.ant-btn-color-yellow.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-yellow.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-yellow-5);}.ant-btn-color-yellow.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-yellow-7);}.ant-btn-color-yellow.ant-btn-variant-outlined,.ant-btn-color-yellow.ant-btn-variant-dashed{border-color:var(--ant-yellow-6);background:var(--ant-color-bg-container);}.ant-btn-color-yellow.ant-btn-variant-outlined:disabled,.ant-btn-color-yellow.ant-btn-variant-dashed:disabled,.ant-btn-color-yellow.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-yellow.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-yellow.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-yellow.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-yellow-5);border-color:var(--ant-yellow-5);background:var(--ant-color-bg-container);}.ant-btn-color-yellow.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-yellow.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-yellow-7);border-color:var(--ant-yellow-7);background:var(--ant-color-bg-container);}.ant-btn-color-yellow.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-yellow.ant-btn-variant-filled{box-shadow:none;background:var(--ant-yellow-1);}.ant-btn-color-yellow.ant-btn-variant-filled:disabled,.ant-btn-color-yellow.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-yellow.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-yellow-2);}.ant-btn-color-yellow.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-yellow-3);}.ant-btn-color-yellow.ant-btn-variant-link{color:var(--ant-yellow-6);box-shadow:none;}.ant-btn-color-yellow.ant-btn-variant-link:disabled,.ant-btn-color-yellow.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-yellow.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-yellow-5);}.ant-btn-color-yellow.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-yellow-7);}.ant-btn-color-yellow.ant-btn-variant-text{color:var(--ant-yellow-6);box-shadow:none;}.ant-btn-color-yellow.ant-btn-variant-text:disabled,.ant-btn-color-yellow.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-yellow.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-yellow-5);background:var(--ant-yellow-1);}.ant-btn-color-yellow.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-yellow-7);background:var(--ant-yellow-3);}.ant-btn-color-volcano{color:var(--ant-volcano-6);box-shadow:var(--ant-button-volcano-shadow-color);}.ant-btn-color-volcano.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-volcano-6);}.ant-btn-color-volcano.ant-btn-variant-solid:disabled,.ant-btn-color-volcano.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-volcano.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-volcano-5);}.ant-btn-color-volcano.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-volcano-7);}.ant-btn-color-volcano.ant-btn-variant-outlined,.ant-btn-color-volcano.ant-btn-variant-dashed{border-color:var(--ant-volcano-6);background:var(--ant-color-bg-container);}.ant-btn-color-volcano.ant-btn-variant-outlined:disabled,.ant-btn-color-volcano.ant-btn-variant-dashed:disabled,.ant-btn-color-volcano.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-volcano.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-volcano.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-volcano.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-volcano-5);border-color:var(--ant-volcano-5);background:var(--ant-color-bg-container);}.ant-btn-color-volcano.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-volcano.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-volcano-7);border-color:var(--ant-volcano-7);background:var(--ant-color-bg-container);}.ant-btn-color-volcano.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-volcano.ant-btn-variant-filled{box-shadow:none;background:var(--ant-volcano-1);}.ant-btn-color-volcano.ant-btn-variant-filled:disabled,.ant-btn-color-volcano.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-volcano.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-volcano-2);}.ant-btn-color-volcano.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-volcano-3);}.ant-btn-color-volcano.ant-btn-variant-link{color:var(--ant-volcano-6);box-shadow:none;}.ant-btn-color-volcano.ant-btn-variant-link:disabled,.ant-btn-color-volcano.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-volcano.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-volcano-5);}.ant-btn-color-volcano.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-volcano-7);}.ant-btn-color-volcano.ant-btn-variant-text{color:var(--ant-volcano-6);box-shadow:none;}.ant-btn-color-volcano.ant-btn-variant-text:disabled,.ant-btn-color-volcano.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-volcano.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-volcano-5);background:var(--ant-volcano-1);}.ant-btn-color-volcano.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-volcano-7);background:var(--ant-volcano-3);}.ant-btn-color-geekblue{color:var(--ant-geekblue-6);box-shadow:var(--ant-button-geekblue-shadow-color);}.ant-btn-color-geekblue.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-geekblue-6);}.ant-btn-color-geekblue.ant-btn-variant-solid:disabled,.ant-btn-color-geekblue.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-geekblue.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-geekblue-5);}.ant-btn-color-geekblue.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-geekblue-7);}.ant-btn-color-geekblue.ant-btn-variant-outlined,.ant-btn-color-geekblue.ant-btn-variant-dashed{border-color:var(--ant-geekblue-6);background:var(--ant-color-bg-container);}.ant-btn-color-geekblue.ant-btn-variant-outlined:disabled,.ant-btn-color-geekblue.ant-btn-variant-dashed:disabled,.ant-btn-color-geekblue.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-geekblue.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-geekblue.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-geekblue.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-geekblue-5);border-color:var(--ant-geekblue-5);background:var(--ant-color-bg-container);}.ant-btn-color-geekblue.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-geekblue.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-geekblue-7);border-color:var(--ant-geekblue-7);background:var(--ant-color-bg-container);}.ant-btn-color-geekblue.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-geekblue.ant-btn-variant-filled{box-shadow:none;background:var(--ant-geekblue-1);}.ant-btn-color-geekblue.ant-btn-variant-filled:disabled,.ant-btn-color-geekblue.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-geekblue.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-geekblue-2);}.ant-btn-color-geekblue.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-geekblue-3);}.ant-btn-color-geekblue.ant-btn-variant-link{color:var(--ant-geekblue-6);box-shadow:none;}.ant-btn-color-geekblue.ant-btn-variant-link:disabled,.ant-btn-color-geekblue.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-geekblue.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-geekblue-5);}.ant-btn-color-geekblue.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-geekblue-7);}.ant-btn-color-geekblue.ant-btn-variant-text{color:var(--ant-geekblue-6);box-shadow:none;}.ant-btn-color-geekblue.ant-btn-variant-text:disabled,.ant-btn-color-geekblue.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-geekblue.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-geekblue-5);background:var(--ant-geekblue-1);}.ant-btn-color-geekblue.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-geekblue-7);background:var(--ant-geekblue-3);}.ant-btn-color-lime{color:var(--ant-lime-6);box-shadow:var(--ant-button-lime-shadow-color);}.ant-btn-color-lime.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-lime-6);}.ant-btn-color-lime.ant-btn-variant-solid:disabled,.ant-btn-color-lime.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-lime.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-lime-5);}.ant-btn-color-lime.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-lime-7);}.ant-btn-color-lime.ant-btn-variant-outlined,.ant-btn-color-lime.ant-btn-variant-dashed{border-color:var(--ant-lime-6);background:var(--ant-color-bg-container);}.ant-btn-color-lime.ant-btn-variant-outlined:disabled,.ant-btn-color-lime.ant-btn-variant-dashed:disabled,.ant-btn-color-lime.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-lime.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-lime.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-lime.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-lime-5);border-color:var(--ant-lime-5);background:var(--ant-color-bg-container);}.ant-btn-color-lime.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-lime.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-lime-7);border-color:var(--ant-lime-7);background:var(--ant-color-bg-container);}.ant-btn-color-lime.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-lime.ant-btn-variant-filled{box-shadow:none;background:var(--ant-lime-1);}.ant-btn-color-lime.ant-btn-variant-filled:disabled,.ant-btn-color-lime.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-lime.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-lime-2);}.ant-btn-color-lime.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-lime-3);}.ant-btn-color-lime.ant-btn-variant-link{color:var(--ant-lime-6);box-shadow:none;}.ant-btn-color-lime.ant-btn-variant-link:disabled,.ant-btn-color-lime.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-lime.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-lime-5);}.ant-btn-color-lime.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-lime-7);}.ant-btn-color-lime.ant-btn-variant-text{color:var(--ant-lime-6);box-shadow:none;}.ant-btn-color-lime.ant-btn-variant-text:disabled,.ant-btn-color-lime.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-lime.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-lime-5);background:var(--ant-lime-1);}.ant-btn-color-lime.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-lime-7);background:var(--ant-lime-3);}.ant-btn-color-gold{color:var(--ant-gold-6);box-shadow:var(--ant-button-gold-shadow-color);}.ant-btn-color-gold.ant-btn-variant-solid{color:var(--ant-color-text-light-solid);background:var(--ant-gold-6);}.ant-btn-color-gold.ant-btn-variant-solid:disabled,.ant-btn-color-gold.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-gold.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-gold-5);}.ant-btn-color-gold.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-gold-7);}.ant-btn-color-gold.ant-btn-variant-outlined,.ant-btn-color-gold.ant-btn-variant-dashed{border-color:var(--ant-gold-6);background:var(--ant-color-bg-container);}.ant-btn-color-gold.ant-btn-variant-outlined:disabled,.ant-btn-color-gold.ant-btn-variant-dashed:disabled,.ant-btn-color-gold.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-color-gold.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-gold.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-color-gold.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-gold-5);border-color:var(--ant-gold-5);background:var(--ant-color-bg-container);}.ant-btn-color-gold.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-color-gold.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-gold-7);border-color:var(--ant-gold-7);background:var(--ant-color-bg-container);}.ant-btn-color-gold.ant-btn-variant-dashed{border-style:dashed;}.ant-btn-color-gold.ant-btn-variant-filled{box-shadow:none;background:var(--ant-gold-1);}.ant-btn-color-gold.ant-btn-variant-filled:disabled,.ant-btn-color-gold.ant-btn-variant-filled.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-color-gold.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-gold-2);}.ant-btn-color-gold.ant-btn-variant-filled:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-gold-3);}.ant-btn-color-gold.ant-btn-variant-link{color:var(--ant-gold-6);box-shadow:none;}.ant-btn-color-gold.ant-btn-variant-link:disabled,.ant-btn-color-gold.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-gold.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-gold-5);}.ant-btn-color-gold.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-gold-7);}.ant-btn-color-gold.ant-btn-variant-text{color:var(--ant-gold-6);box-shadow:none;}.ant-btn-color-gold.ant-btn-variant-text:disabled,.ant-btn-color-gold.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-color-gold.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-gold-5);background:var(--ant-gold-1);}.ant-btn-color-gold.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-gold-7);background:var(--ant-gold-3);}.ant-btn-variant-outlined,.ant-btn-variant-dashed{border-color:var(--ant-button-default-border-color);background:var(--ant-button-default-bg);}.ant-btn-variant-outlined:disabled,.ant-btn-variant-dashed:disabled,.ant-btn-variant-outlined.ant-btn-disabled,.ant-btn-variant-dashed.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):hover,.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-button-default-hover-color);border-color:var(--ant-button-default-hover-border-color);background:var(--ant-button-default-hover-bg);}.ant-btn-variant-outlined:not(:disabled):not(.ant-btn-disabled):active,.ant-btn-variant-dashed:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-button-default-active-color);border-color:var(--ant-button-default-active-border-color);background:var(--ant-button-default-active-bg);}.ant-btn-variant-text{color:var(--ant-button-text-text-color);box-shadow:none;}.ant-btn-variant-text:disabled,.ant-btn-variant-text.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-button-text-text-hover-color);background:var(--ant-button-text-hover-bg);}.ant-btn-variant-text:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-button-text-text-active-color);background:var(--ant-color-bg-text-active);}.ant-btn-variant-solid{color:var(--ant-button-primary-color);background:var(--ant-color-primary);}.ant-btn-variant-solid:disabled,.ant-btn-variant-solid.ant-btn-disabled{cursor:not-allowed;border-color:var(--ant-button-border-color-disabled);color:var(--ant-color-text-disabled);background:var(--ant-color-bg-container-disabled);box-shadow:none;}.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background:var(--ant-color-primary-hover);color:var(--ant-button-primary-color);}.ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):active{background:var(--ant-color-primary-active);color:var(--ant-button-primary-color);}.ant-btn-variant-link{color:var(--ant-color-link);box-shadow:none;}.ant-btn-variant-link:disabled,.ant-btn-variant-link.ant-btn-disabled{cursor:not-allowed;color:var(--ant-color-text-disabled);}.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):hover{color:var(--ant-color-link-hover);background:var(--ant-button-link-hover-bg);}.ant-btn-variant-link:not(:disabled):not(.ant-btn-disabled):active{color:var(--ant-color-link-active);}.ant-btn-group{position:relative;display:inline-flex;}.ant-btn-group >span:not(:last-child),.ant-btn-group >.ant-btn:not(:last-child),.ant-btn-group >span:not(:last-child)>.ant-btn,.ant-btn-group >.ant-btn:not(:last-child)>.ant-btn{border-start-end-radius:0;border-end-end-radius:0;}.ant-btn-group >span:not(:first-child),.ant-btn-group >.ant-btn:not(:first-child){margin-inline-start:calc(var(--ant-line-width) * -1);}.ant-btn-group >span:not(:first-child),.ant-btn-group >.ant-btn:not(:first-child),.ant-btn-group >span:not(:first-child)>.ant-btn,.ant-btn-group >.ant-btn:not(:first-child)>.ant-btn{border-start-start-radius:0;border-end-start-radius:0;}.ant-btn-group .ant-btn{position:relative;z-index:1;}.ant-btn-group .ant-btn:hover,.ant-btn-group .ant-btn:focus,.ant-btn-group .ant-btn:active{z-index:2;}.ant-btn-group .ant-btn[disabled]{z-index:0;}.ant-btn-group .ant-btn-icon-only{font-size:var(--ant-font-size);}.ant-btn-group >span:not(:last-child):not(:disabled),.ant-btn-group >.ant-btn-primary:not(:last-child):not(:disabled),.ant-btn-group >span:not(:last-child)>.ant-btn-primary:not(:disabled),.ant-btn-group >.ant-btn-primary:not(:last-child)>.ant-btn-primary:not(:disabled){border-inline-end-color:var(--ant-button-group-border-color);}.ant-btn-group >span:not(:first-child):not(:disabled),.ant-btn-group >.ant-btn-primary:not(:first-child):not(:disabled),.ant-btn-group >span:not(:first-child)>.ant-btn-primary:not(:disabled),.ant-btn-group >.ant-btn-primary:not(:first-child)>.ant-btn-primary:not(:disabled){border-inline-start-color:var(--ant-button-group-border-color);}.ant-btn-group >span:not(:last-child):not(:disabled),.ant-btn-group >.ant-btn-danger:not(:last-child):not(:disabled),.ant-btn-group >span:not(:last-child)>.ant-btn-danger:not(:disabled),.ant-btn-group >.ant-btn-danger:not(:last-child)>.ant-btn-danger:not(:disabled){border-inline-end-color:var(--ant-color-error-hover);}.ant-btn-group >span:not(:first-child):not(:disabled),.ant-btn-group >.ant-btn-danger:not(:first-child):not(:disabled),.ant-btn-group >span:not(:first-child)>.ant-btn-danger:not(:disabled),.ant-btn-group >.ant-btn-danger:not(:first-child)>.ant-btn-danger:not(:disabled){border-inline-start-color:var(--ant-color-error-hover);}.ant-dropdown{position:absolute;top:-9999px;left:-9999px;z-index:var(--ant-dropdown-z-index-popup);display:block;}.ant-dropdown::before{position:absolute;inset-block:calc(var(--ant-size-popup-arrow) / 2 - calc(var(--ant-size-popup-arrow) / 2 + var(--ant-margin-xxs)));z-index:-9999;opacity:0.0001;content:"";}.ant-dropdown-menu-vertical{max-height:100vh;overflow-y:auto;}.ant-dropdown-trigger.ant-btn>.anticon-down,.ant-dropdown-trigger.ant-btn>.ant-btn-icon>.anticon-down{font-size:var(--ant-font-size-icon);}.ant-dropdown .ant-dropdown-wrap{position:relative;}.ant-dropdown .ant-dropdown-wrap .ant-btn>.anticon-down{font-size:var(--ant-font-size-icon);}.ant-dropdown .ant-dropdown-wrap .anticon-down::before{transition:transform var(--ant-motion-duration-mid);}.ant-dropdown .ant-dropdown-wrap-open .anticon-down::before{transform:rotate(180deg);}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-hidden{display:none;}.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpIn;}.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight{animation-name:antSlideDownIn;}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpOut;}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{animation-name:antSlideDownOut;}.ant-dropdown .ant-dropdown-arrow{position:absolute;z-index:1;display:block;pointer-events:none;width:var(--ant-size-popup-arrow);height:var(--ant-size-popup-arrow);overflow:hidden;}.ant-dropdown .ant-dropdown-arrow::before{position:absolute;bottom:0;inset-inline-start:0;width:var(--ant-size-popup-arrow);height:calc(var(--ant-size-popup-arrow) / 2);background:var(--ant-color-bg-elevated);clip-path:var(--ant-dropdown-arrow-polygon);clip-path:var(--ant-dropdown-arrow-path);content:"";}.ant-dropdown .ant-dropdown-arrow::after{content:"";position:absolute;width:var(--ant-dropdown-arrow-shadow-width);height:var(--ant-dropdown-arrow-shadow-width);bottom:0;inset-inline:0;margin:auto;border-radius:0 0 var(--ant-border-radius-xs) 0;transform:translateY(50%) rotate(-135deg);box-shadow:var(--ant-box-shadow-popover-arrow);z-index:0;background:transparent;}.ant-dropdown .ant-dropdown-arrow:before{background:var(--ant-color-bg-elevated);}.ant-dropdown-placement-top>.ant-dropdown-arrow,.ant-dropdown-placement-topLeft>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{bottom:0;transform:translateY(100%) rotate(180deg);}.ant-dropdown-placement-top>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) translateY(100%) rotate(180deg);}.ant-dropdown-placement-topLeft{--arrow-offset-horizontal:var(--ant-dropdown-arrow-offset-horizontal);}.ant-dropdown-placement-topLeft >.ant-dropdown-arrow{left:var(--ant-dropdown-arrow-offset-horizontal);}.ant-dropdown-placement-topRight{--arrow-offset-horizontal:calc(100% - var(--ant-dropdown-arrow-offset-horizontal));}.ant-dropdown-placement-topRight >.ant-dropdown-arrow{right:var(--ant-dropdown-arrow-offset-horizontal);}.ant-dropdown-placement-bottom>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{top:0;transform:translateY(-100%);}.ant-dropdown-placement-bottom>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) translateY(-100%);}.ant-dropdown-placement-bottomLeft{--arrow-offset-horizontal:var(--ant-dropdown-arrow-offset-horizontal);}.ant-dropdown-placement-bottomLeft >.ant-dropdown-arrow{left:var(--ant-dropdown-arrow-offset-horizontal);}.ant-dropdown-placement-bottomRight{--arrow-offset-horizontal:calc(100% - var(--ant-dropdown-arrow-offset-horizontal));}.ant-dropdown-placement-bottomRight >.ant-dropdown-arrow{right:var(--ant-dropdown-arrow-offset-horizontal);}.ant-dropdown .ant-dropdown-menu{position:relative;margin:0;}.ant-dropdown-menu-submenu-popup{position:absolute;z-index:var(--ant-dropdown-z-index-popup);background:transparent;box-shadow:none;transform-origin:0 0;}.ant-dropdown-menu-submenu-popup ul,.ant-dropdown-menu-submenu-popup li{list-style:none;margin:0;}.ant-dropdown,.ant-dropdown-menu-submenu{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;font-family:var(--ant-font-family);}.ant-dropdown .ant-dropdown-menu,.ant-dropdown-menu-submenu .ant-dropdown-menu{padding:var(--ant-padding-xxs);list-style-type:none;background-color:var(--ant-color-bg-elevated);background-clip:padding-box;border-radius:var(--ant-border-radius-lg);outline:none;box-shadow:var(--ant-box-shadow-secondary);}.ant-dropdown .ant-dropdown-menu:focus-visible,.ant-dropdown-menu-submenu .ant-dropdown-menu:focus-visible{outline:var(--ant-line-width-focus) solid var(--ant-color-primary-border);outline-offset:1px;transition:outline-offset 0s,outline 0s;}.ant-dropdown .ant-dropdown-menu:empty,.ant-dropdown-menu-submenu .ant-dropdown-menu:empty{padding:0;box-shadow:none;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-group-title,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-group-title{padding:var(--ant-dropdown-padding-block) var(--ant-control-padding-horizontal);color:var(--ant-color-text-description);transition:all var(--ant-motion-duration-mid);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item{position:relative;display:flex;align-items:center;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-icon,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-icon{min-width:var(--ant-font-size);margin-inline-end:var(--ant-margin-xs);font-size:var(--ant-font-size-sm);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content{flex:auto;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content-with-extra,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content-with-extra{display:inline-flex;align-items:center;width:100%;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content >a,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content >a{color:inherit;transition:all var(--ant-motion-duration-mid);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content >a:hover,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content >a:hover{color:inherit;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content >a::after,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content >a::after{position:absolute;inset:0;content:"";}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-title-content .ant-dropdown-menu-item-extra,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-title-content .ant-dropdown-menu-item-extra{padding-inline-start:var(--ant-padding);margin-inline-start:auto;font-size:var(--ant-font-size-sm);color:var(--ant-color-text-description);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title{display:flex;margin:0;padding:var(--ant-dropdown-padding-block) var(--ant-control-padding-horizontal);color:var(--ant-color-text);font-weight:normal;font-size:var(--ant-font-size);line-height:var(--ant-line-height);cursor:pointer;transition:all var(--ant-motion-duration-mid);border-radius:var(--ant-border-radius-sm);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item:hover,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title:hover,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title:hover,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-active,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-active,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-active,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-active{background-color:var(--ant-control-item-bg-hover);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item:focus-visible,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item:focus-visible,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title:focus-visible,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title:focus-visible{outline:var(--ant-line-width-focus) solid var(--ant-color-primary-border);outline-offset:1px;transition:outline-offset 0s,outline 0s;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-selected,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected{color:var(--ant-color-primary);background-color:var(--ant-control-item-bg-active);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-selected:hover,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected:hover,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected:hover,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-selected-active,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-selected-active,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected-active,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-selected-active{background-color:var(--ant-control-item-bg-active-hover);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-disabled,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled{color:var(--ant-color-text-disabled);cursor:not-allowed;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-disabled:hover,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled:hover,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled:hover{color:var(--ant-color-text-disabled);background-color:var(--ant-color-bg-elevated);cursor:not-allowed;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-disabled a,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled a,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-disabled a{pointer-events:none;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-divider,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title-divider,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title-divider{height:1px;margin:var(--ant-margin-xxs) 0;overflow:hidden;line-height:0;background-color:var(--ant-color-split);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;inset-inline-end:var(--ant-padding-xs);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-inline-end:0!important;color:var(--ant-color-icon);font-size:var(--ant-font-size-icon);font-style:normal;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item-group-list,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item-group-list{margin:0 var(--ant-margin-xs);padding:0;list-style:none;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-title{padding-inline-end:calc(var(--ant-control-padding-horizontal) + var(--ant-font-size-sm));}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-vertical,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-vertical{position:relative;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:var(--ant-color-text-disabled);background-color:var(--ant-color-bg-elevated);cursor:not-allowed;}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:var(--ant-color-primary);}.ant-slide-up-enter,.ant-slide-up-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-up-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-up-enter.ant-slide-up-enter-active,.ant-slide-up-appear.ant-slide-up-appear-active{animation-name:antSlideUpIn;animation-play-state:running;}.ant-slide-up-leave.ant-slide-up-leave-active{animation-name:antSlideUpOut;animation-play-state:running;pointer-events:none;}.ant-slide-up-enter,.ant-slide-up-appear{transform:scale(0);transform-origin:0% 0%;opacity:0;animation-timing-function:var(--ant-motion-ease-out-quint);}.ant-slide-up-enter-prepare,.ant-slide-up-appear-prepare{transform:scale(1);}.ant-slide-up-leave{animation-timing-function:var(--ant-motion-ease-in-quint);}.ant-slide-down-enter,.ant-slide-down-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-down-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-slide-down-enter.ant-slide-down-enter-active,.ant-slide-down-appear.ant-slide-down-appear-active{animation-name:antSlideDownIn;animation-play-state:running;}.ant-slide-down-leave.ant-slide-down-leave-active{animation-name:antSlideDownOut;animation-play-state:running;pointer-events:none;}.ant-slide-down-enter,.ant-slide-down-appear{transform:scale(0);transform-origin:0% 0%;opacity:0;animation-timing-function:var(--ant-motion-ease-out-quint);}.ant-slide-down-enter-prepare,.ant-slide-down-appear-prepare{transform:scale(1);}.ant-slide-down-leave{animation-timing-function:var(--ant-motion-ease-in-quint);}.ant-move-up-enter,.ant-move-up-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-move-up-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-move-up-enter.ant-move-up-enter-active,.ant-move-up-appear.ant-move-up-appear-active{animation-name:antMoveUpIn;animation-play-state:running;}.ant-move-up-leave.ant-move-up-leave-active{animation-name:antMoveUpOut;animation-play-state:running;pointer-events:none;}.ant-move-up-enter,.ant-move-up-appear{opacity:0;animation-timing-function:var(--ant-motion-ease-out-circ);}.ant-move-up-leave{animation-timing-function:var(--ant-motion-ease-in-out-circ);}.ant-move-down-enter,.ant-move-down-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-move-down-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-move-down-enter.ant-move-down-enter-active,.ant-move-down-appear.ant-move-down-appear-active{animation-name:antMoveDownIn;animation-play-state:running;}.ant-move-down-leave.ant-move-down-leave-active{animation-name:antMoveDownOut;animation-play-state:running;pointer-events:none;}.ant-move-down-enter,.ant-move-down-appear{opacity:0;animation-timing-function:var(--ant-motion-ease-out-circ);}.ant-move-down-leave{animation-timing-function:var(--ant-motion-ease-in-out-circ);}.ant-zoom-big-enter,.ant-zoom-big-appear{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-zoom-big-leave{animation-duration:var(--ant-motion-duration-mid);animation-fill-mode:both;animation-play-state:paused;}.ant-zoom-big-enter.ant-zoom-big-enter-active,.ant-zoom-big-appear.ant-zoom-big-appear-active{animation-name:antZoomBigIn;animation-play-state:running;}.ant-zoom-big-leave.ant-zoom-big-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none;}.ant-zoom-big-enter,.ant-zoom-big-appear{transform:scale(0);opacity:0;animation-timing-function:var(--ant-motion-ease-out-circ);}.ant-zoom-big-enter-prepare,.ant-zoom-big-appear-prepare{transform:none;}.ant-zoom-big-leave{animation-timing-function:var(--ant-motion-ease-in-out-circ);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:not(.ant-dropdown-menu-item-disabled),.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:not(.ant-dropdown-menu-item-disabled){color:var(--ant-color-error);}.ant-dropdown .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:not(.ant-dropdown-menu-item-disabled):hover,.ant-dropdown-menu-submenu .ant-dropdown-menu .ant-dropdown-menu-item.ant-dropdown-menu-item-danger:not(.ant-dropdown-menu-item-disabled):hover{color:var(--ant-color-text-light-solid);background-color:var(--ant-color-error);}.ant-flex{display:flex;margin:0;padding:0;}.ant-flex-vertical{flex-direction:column;}.ant-flex-rtl{direction:rtl;}.ant-flex:empty{display:none;}.ant-flex-gap-small{gap:var(--ant-padding-xs);}.ant-flex-gap-middle{gap:var(--ant-padding);}.ant-flex-gap-large{gap:var(--ant-padding-lg);}.ant-flex-wrap-wrap{flex-wrap:wrap;}.ant-flex-wrap-nowrap{flex-wrap:nowrap;}.ant-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse;}.ant-flex-align-center{align-items:center;}.ant-flex-align-start{align-items:start;}.ant-flex-align-end{align-items:end;}.ant-flex-align-flex-start{align-items:flex-start;}.ant-flex-align-flex-end{align-items:flex-end;}.ant-flex-align-self-start{align-items:self-start;}.ant-flex-align-self-end{align-items:self-end;}.ant-flex-align-baseline{align-items:baseline;}.ant-flex-align-normal{align-items:normal;}.ant-flex-align-stretch{align-items:stretch;}.ant-flex-justify-flex-start{justify-content:flex-start;}.ant-flex-justify-flex-end{justify-content:flex-end;}.ant-flex-justify-start{justify-content:start;}.ant-flex-justify-end{justify-content:end;}.ant-flex-justify-center{justify-content:center;}.ant-flex-justify-space-between{justify-content:space-between;}.ant-flex-justify-space-around{justify-content:space-around;}.ant-flex-justify-space-evenly{justify-content:space-evenly;}.ant-flex-justify-stretch{justify-content:stretch;}.ant-flex-justify-normal{justify-content:normal;}.ant-flex-justify-left{justify-content:left;}.ant-flex-justify-right{justify-content:right;}.ant-tag{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-tag::before,.ant-tag::after{box-sizing:border-box;}.ant-tag [class^="ant-tag"],.ant-tag [class*=" ant-tag"]{box-sizing:border-box;}.ant-tag [class^="ant-tag"]::before,.ant-tag [class*=" ant-tag"]::before,.ant-tag [class^="ant-tag"]::after,.ant-tag [class*=" ant-tag"]::after{box-sizing:border-box;}.ant-tag{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size-sm);line-height:calc(var(--ant-line-height-sm) * var(--ant-font-size-sm));list-style:none;font-family:var(--ant-font-family);display:inline-block;height:auto;margin-inline-end:var(--ant-margin-xs);padding-inline:calc(8px - var(--ant-line-width));white-space:nowrap;background:var(--ant-tag-default-bg);border:var(--ant-line-width) var(--ant-line-type) var(--ant-color-border);border-radius:var(--ant-border-radius-sm);opacity:1;transition:all var(--ant-motion-duration-mid);text-align:start;position:relative;}.ant-tag.ant-tag-rtl{direction:rtl;}.ant-tag,.ant-tag a,.ant-tag a:hover{color:var(--ant-tag-default-color);}.ant-tag .ant-tag-close-icon{margin-inline-start:calc(var(--ant-padding-xxs) - var(--ant-line-width));font-size:calc(var(--ant-font-size-icon) - var(--ant-line-width) * 2);color:var(--ant-color-icon);cursor:pointer;transition:all var(--ant-motion-duration-mid);}.ant-tag .ant-tag-close-icon:hover{color:var(--ant-color-text-heading);}.ant-tag.ant-tag-has-color{border-color:transparent;}.ant-tag.ant-tag-has-color,.ant-tag.ant-tag-has-color a,.ant-tag.ant-tag-has-color a:hover,.ant-tag.ant-tag-has-color .anticon-close,.ant-tag.ant-tag-has-color .anticon-close:hover{color:var(--ant-color-text-light-solid);}.ant-tag-checkable{background-color:transparent;border-color:transparent;cursor:pointer;}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:var(--ant-color-primary);background-color:var(--ant-color-fill-secondary);}.ant-tag-checkable:active,.ant-tag-checkable-checked{color:var(--ant-color-text-light-solid);}.ant-tag-checkable-checked{background-color:var(--ant-color-primary);}.ant-tag-checkable-checked:hover{background-color:var(--ant-color-primary-hover);}.ant-tag-checkable:active{background-color:var(--ant-color-primary-active);}.ant-tag-hidden{display:none;}.ant-tag >.anticon+span,.ant-tag >span+.anticon{margin-inline-start:calc(8px - var(--ant-line-width));}.ant-tag-borderless{border-color:transparent;background:var(--ant-tag-default-bg);}.ant-anchor-css-var{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-anchor-css-var::before,.ant-anchor-css-var::after{box-sizing:border-box;}.ant-anchor-css-var [class^="ant-anchor"],.ant-anchor-css-var [class*=" ant-anchor"]{box-sizing:border-box;}.ant-anchor-css-var [class^="ant-anchor"]::before,.ant-anchor-css-var [class*=" ant-anchor"]::before,.ant-anchor-css-var [class^="ant-anchor"]::after,.ant-anchor-css-var [class*=" ant-anchor"]::after{box-sizing:border-box;}.ant-anchor-wrapper{margin-block-start:calc(var(--ant-padding-xxs) * -1);padding-block-start:var(--ant-padding-xxs);}.ant-anchor-wrapper .ant-anchor{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;font-family:var(--ant-font-family);position:relative;padding-inline-start:var(--ant-line-width-bold);}.ant-anchor-wrapper .ant-anchor .ant-anchor-link{padding-block:var(--ant-anchor-link-padding-block);padding-inline:var(--ant-anchor-link-padding-inline-start) 0;}.ant-anchor-wrapper .ant-anchor .ant-anchor-link-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;display:block;margin-block-end:calc(var(--ant-font-size) / 14 * 3);color:var(--ant-color-text);transition:all var(--ant-motion-duration-slow);}.ant-anchor-wrapper .ant-anchor .ant-anchor-link-title:only-child{margin-block-end:0;}.ant-anchor-wrapper .ant-anchor .ant-anchor-link-active>.ant-anchor-link-title{color:var(--ant-color-primary);}.ant-anchor-wrapper .ant-anchor .ant-anchor-link .ant-anchor-link{padding-block:calc(var(--ant-padding-xxs) / 2);}.ant-anchor-wrapper:not(.ant-anchor-wrapper-horizontal) .ant-anchor::before{position:absolute;inset-inline-start:0;top:0;height:100%;border-inline-start:var(--ant-line-width-bold) var(--ant-line-type) var(--ant-color-split);content:" ";}.ant-anchor-wrapper:not(.ant-anchor-wrapper-horizontal) .ant-anchor .ant-anchor-ink{position:absolute;inset-inline-start:0;display:none;transform:translateY(-50%);transition:top var(--ant-motion-duration-slow) ease-in-out;width:var(--ant-line-width-bold);background-color:var(--ant-color-primary);}.ant-anchor-wrapper:not(.ant-anchor-wrapper-horizontal) .ant-anchor .ant-anchor-ink.ant-anchor-ink-visible{display:inline-block;}.ant-anchor-wrapper .ant-anchor-fixed .ant-anchor-ink .ant-anchor-ink{display:none;}.ant-anchor-wrapper-horizontal{position:relative;}.ant-anchor-wrapper-horizontal::before{position:absolute;left:0;right:0;bottom:0;border-bottom:var(--ant-line-width) var(--ant-line-type) var(--ant-color-split);content:" ";}.ant-anchor-wrapper-horizontal .ant-anchor{overflow-x:scroll;position:relative;display:flex;scrollbar-width:none;}.ant-anchor-wrapper-horizontal .ant-anchor::-webkit-scrollbar{display:none;}.ant-anchor-wrapper-horizontal .ant-anchor .ant-anchor-link:first-of-type{padding-inline:0;}.ant-anchor-wrapper-horizontal .ant-anchor .ant-anchor-ink{position:absolute;bottom:0;transition:left var(--ant-motion-duration-slow) ease-in-out,width var(--ant-motion-duration-slow) ease-in-out;height:var(--ant-line-width-bold);background-color:var(--ant-color-primary);}.ant-typography{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-typography::before,.ant-typography::after{box-sizing:border-box;}.ant-typography [class^="ant-typography"],.ant-typography [class*=" ant-typography"]{box-sizing:border-box;}.ant-typography [class^="ant-typography"]::before,.ant-typography [class*=" ant-typography"]::before,.ant-typography [class^="ant-typography"]::after,.ant-typography [class*=" ant-typography"]::after{box-sizing:border-box;}.ant-typography{color:var(--ant-color-text);word-break:break-word;line-height:var(--ant-line-height);}.ant-typography.ant-typography-secondary{color:var(--ant-color-text-description);}.ant-typography.ant-typography-success{color:var(--ant-color-success-text);}.ant-typography.ant-typography-warning{color:var(--ant-color-warning-text);}.ant-typography.ant-typography-danger{color:var(--ant-color-error-text);}a.ant-typography.ant-typography-danger:active,a.ant-typography.ant-typography-danger:focus{color:var(--ant-color-error-text-active);}a.ant-typography.ant-typography-danger:hover{color:var(--ant-color-error-text-hover);}.ant-typography.ant-typography-disabled{color:var(--ant-color-text-disabled);cursor:not-allowed;user-select:none;}div.ant-typography,.ant-typography p{margin-bottom:1em;}h1.ant-typography,div.ant-typography-h1,div.ant-typography-h1>textarea,.ant-typography h1{margin-bottom:var(--ant-typography-title-margin-bottom);color:var(--ant-color-text-heading);font-weight:var(--ant-font-weight-strong);font-size:var(--ant-font-size-heading-1);line-height:var(--ant-line-height-heading-1);}h2.ant-typography,div.ant-typography-h2,div.ant-typography-h2>textarea,.ant-typography h2{margin-bottom:var(--ant-typography-title-margin-bottom);color:var(--ant-color-text-heading);font-weight:var(--ant-font-weight-strong);font-size:var(--ant-font-size-heading-2);line-height:var(--ant-line-height-heading-2);}h3.ant-typography,div.ant-typography-h3,div.ant-typography-h3>textarea,.ant-typography h3{margin-bottom:var(--ant-typography-title-margin-bottom);color:var(--ant-color-text-heading);font-weight:var(--ant-font-weight-strong);font-size:var(--ant-font-size-heading-3);line-height:var(--ant-line-height-heading-3);}h4.ant-typography,div.ant-typography-h4,div.ant-typography-h4>textarea,.ant-typography h4{margin-bottom:var(--ant-typography-title-margin-bottom);color:var(--ant-color-text-heading);font-weight:var(--ant-font-weight-strong);font-size:var(--ant-font-size-heading-4);line-height:var(--ant-line-height-heading-4);}h5.ant-typography,div.ant-typography-h5,div.ant-typography-h5>textarea,.ant-typography h5{margin-bottom:var(--ant-typography-title-margin-bottom);color:var(--ant-color-text-heading);font-weight:var(--ant-font-weight-strong);font-size:var(--ant-font-size-heading-5);line-height:var(--ant-line-height-heading-5);}.ant-typography+h1.ant-typography,.ant-typography+h2.ant-typography,.ant-typography+h3.ant-typography,.ant-typography+h4.ant-typography,.ant-typography+h5.ant-typography{margin-top:var(--ant-typography-title-margin-top);}.ant-typography div +h1,.ant-typography ul +h1,.ant-typography li +h1,.ant-typography p +h1,.ant-typography h1 +h1,.ant-typography h2 +h1,.ant-typography h3 +h1,.ant-typography h4 +h1,.ant-typography h5 +h1,.ant-typography div +h2,.ant-typography ul +h2,.ant-typography li +h2,.ant-typography p +h2,.ant-typography h1 +h2,.ant-typography h2 +h2,.ant-typography h3 +h2,.ant-typography h4 +h2,.ant-typography h5 +h2,.ant-typography div +h3,.ant-typography ul +h3,.ant-typography li +h3,.ant-typography p +h3,.ant-typography h1 +h3,.ant-typography h2 +h3,.ant-typography h3 +h3,.ant-typography h4 +h3,.ant-typography h5 +h3,.ant-typography div +h4,.ant-typography ul +h4,.ant-typography li +h4,.ant-typography p +h4,.ant-typography h1 +h4,.ant-typography h2 +h4,.ant-typography h3 +h4,.ant-typography h4 +h4,.ant-typography h5 +h4,.ant-typography div +h5,.ant-typography ul +h5,.ant-typography li +h5,.ant-typography p +h5,.ant-typography h1 +h5,.ant-typography h2 +h5,.ant-typography h3 +h5,.ant-typography h4 +h5,.ant-typography h5 +h5{margin-top:var(--ant-typography-title-margin-top);}.ant-typography code{margin:0 0.2em;padding-inline:0.4em;padding-block:0.2em 0.1em;font-size:85%;font-family:var(--ant-font-family-code);background:rgba(150, 150, 150, 0.1);border:1px solid rgba(100, 100, 100, 0.2);border-radius:3px;}.ant-typography kbd{margin:0 0.2em;padding-inline:0.4em;padding-block:0.15em 0.1em;font-size:90%;font-family:var(--ant-font-family-code);background:rgba(150, 150, 150, 0.06);border:1px solid rgba(100, 100, 100, 0.2);border-bottom-width:2px;border-radius:3px;}.ant-typography mark{padding:0;background-color:#ffe58f;}.ant-typography u,.ant-typography ins{text-decoration:underline;text-decoration-skip-ink:auto;}.ant-typography s,.ant-typography del{text-decoration:line-through;}.ant-typography strong{font-weight:600;}.ant-typography ul,.ant-typography ol{margin-inline:0;margin-block:0 1em;padding:0;}.ant-typography ul li,.ant-typography ol li{margin-inline:20px 0;margin-block:0;padding-inline:4px 0;padding-block:0;}.ant-typography ul{list-style-type:circle;}.ant-typography ul ul{list-style-type:disc;}.ant-typography ol{list-style-type:decimal;}.ant-typography pre,.ant-typography blockquote{margin:1em 0;}.ant-typography pre{padding:0.4em 0.6em;white-space:pre-wrap;word-wrap:break-word;background:rgba(150, 150, 150, 0.1);border:1px solid rgba(100, 100, 100, 0.2);border-radius:3px;font-family:var(--ant-font-family-code);}.ant-typography pre code{display:inline;margin:0;padding:0;font-size:inherit;font-family:inherit;background:transparent;border:0;}.ant-typography blockquote{padding-inline:0.6em 0;padding-block:0;border-inline-start:4px solid rgba(100, 100, 100, 0.2);opacity:0.85;}a.ant-typography,.ant-typography a{color:var(--ant-color-link);text-decoration:var(--ant-link-decoration);outline:none;cursor:pointer;transition:all var(--ant-motion-duration-slow);border:0;padding:0;background:none;user-select:text;}a.ant-typography:focus-visible,.ant-typography a:focus-visible{outline:var(--ant-line-width-focus) solid var(--ant-color-primary-border);outline-offset:1px;transition:outline-offset 0s,outline 0s;}a.ant-typography:focus,.ant-typography a:focus,a.ant-typography:hover,.ant-typography a:hover{color:var(--ant-color-link-hover);}a.ant-typography:active,.ant-typography a:active{color:var(--ant-color-link-active);}a.ant-typography[disabled],.ant-typography a[disabled],a.ant-typography.ant-typography-disabled,.ant-typography a.ant-typography-disabled{color:var(--ant-color-text-disabled);cursor:not-allowed;}a.ant-typography[disabled]:active,.ant-typography a[disabled]:active,a.ant-typography.ant-typography-disabled:active,.ant-typography a.ant-typography-disabled:active,a.ant-typography[disabled]:hover,.ant-typography a[disabled]:hover,a.ant-typography.ant-typography-disabled:hover,.ant-typography a.ant-typography-disabled:hover{color:var(--ant-color-text-disabled);}a.ant-typography[disabled]:active,.ant-typography a[disabled]:active,a.ant-typography.ant-typography-disabled:active,.ant-typography a.ant-typography-disabled:active{pointer-events:none;}.ant-typography .ant-typography-expand,.ant-typography .ant-typography-collapse,.ant-typography .ant-typography-edit,.ant-typography .ant-typography-copy{color:var(--ant-color-link);text-decoration:var(--ant-link-decoration);outline:none;cursor:pointer;transition:all var(--ant-motion-duration-slow);border:0;padding:0;background:none;user-select:none;margin-inline-start:var(--ant-margin-xxs);}.ant-typography .ant-typography-expand:focus-visible,.ant-typography .ant-typography-collapse:focus-visible,.ant-typography .ant-typography-edit:focus-visible,.ant-typography .ant-typography-copy:focus-visible{outline:var(--ant-line-width-focus) solid var(--ant-color-primary-border);outline-offset:1px;transition:outline-offset 0s,outline 0s;}.ant-typography .ant-typography-expand:focus,.ant-typography .ant-typography-collapse:focus,.ant-typography .ant-typography-edit:focus,.ant-typography .ant-typography-copy:focus,.ant-typography .ant-typography-expand:hover,.ant-typography .ant-typography-collapse:hover,.ant-typography .ant-typography-edit:hover,.ant-typography .ant-typography-copy:hover{color:var(--ant-color-link-hover);}.ant-typography .ant-typography-expand:active,.ant-typography .ant-typography-collapse:active,.ant-typography .ant-typography-edit:active,.ant-typography .ant-typography-copy:active{color:var(--ant-color-link-active);}.ant-typography-edit-content{position:relative;}div.ant-typography-edit-content{inset-inline-start:calc(var(--ant-padding-sm) * -1);margin-top:calc(var(--ant-padding-sm) * -1);margin-bottom:calc(1em - var(--ant-padding-sm));}.ant-typography-edit-content .ant-typography-edit-content-confirm{position:absolute;inset-inline-end:calc(var(--ant-margin-xs) + 2px);inset-block-end:var(--ant-margin-xs);color:var(--ant-color-icon);font-weight:normal;font-size:var(--ant-font-size);font-style:normal;pointer-events:none;}.ant-typography-edit-content textarea{margin:0!important;-moz-transition:none;height:1em;}.ant-typography .ant-typography-copy-success,.ant-typography .ant-typography-copy-success:hover,.ant-typography .ant-typography-copy-success:focus{color:var(--ant-color-success);}.ant-typography .ant-typography-copy-icon-only{margin-inline-start:0;}a.ant-typography-ellipsis,span.ant-typography-ellipsis{display:inline-block;max-width:100%;}.ant-typography-ellipsis-single-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}a.ant-typography-ellipsis-single-line,span.ant-typography-ellipsis-single-line{vertical-align:bottom;}.ant-typography-ellipsis-single-line >code{padding-block:0;max-width:calc(100% - 1.2em);display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;box-sizing:content-box;}.ant-typography-ellipsis-multiple-line{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;}.ant-typography-rtl{direction:rtl;}.ant-space{display:inline-flex;}.ant-space-rtl{direction:rtl;}.ant-space-vertical{flex-direction:column;}.ant-space-align{flex-direction:column;}.ant-space-align-center{align-items:center;}.ant-space-align-start{align-items:flex-start;}.ant-space-align-end{align-items:flex-end;}.ant-space-align-baseline{align-items:baseline;}.ant-space .ant-space-item:empty{display:none;}.ant-space .ant-space-item>.ant-badge-not-a-wrapper:only-child{display:block;}.ant-space-gap-row-small{row-gap:var(--ant-padding-xs);}.ant-space-gap-row-middle{row-gap:var(--ant-padding);}.ant-space-gap-row-large{row-gap:var(--ant-padding-lg);}.ant-space-gap-col-small{column-gap:var(--ant-padding-xs);}.ant-space-gap-col-middle{column-gap:var(--ant-padding);}.ant-space-gap-col-large{column-gap:var(--ant-padding-lg);}.ant-space-block{display:flex;width:100%;}.ant-space-vertical{flex-direction:column;}.ant-avatar-css-var{font-family:var(--ant-font-family);font-size:var(--ant-font-size);box-sizing:border-box;}.ant-avatar-css-var::before,.ant-avatar-css-var::after{box-sizing:border-box;}.ant-avatar-css-var [class^="ant-avatar"],.ant-avatar-css-var [class*=" ant-avatar"]{box-sizing:border-box;}.ant-avatar-css-var [class^="ant-avatar"]::before,.ant-avatar-css-var [class*=" ant-avatar"]::before,.ant-avatar-css-var [class^="ant-avatar"]::after,.ant-avatar-css-var [class*=" ant-avatar"]::after{box-sizing:border-box;}.ant-avatar{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text-light-solid);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;font-family:var(--ant-font-family);position:relative;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;white-space:nowrap;text-align:center;vertical-align:middle;background:var(--ant-color-text-placeholder);border:var(--ant-line-width) var(--ant-line-type) transparent;width:var(--ant-avatar-container-size);height:var(--ant-avatar-container-size);border-radius:50%;}.ant-avatar-image{background:transparent;}.ant-avatar .ant-image-img{display:block;}.ant-avatar.ant-avatar-square{border-radius:var(--ant-border-radius);}.ant-avatar.ant-avatar-icon{font-size:var(--ant-avatar-text-font-size);}.ant-avatar.ant-avatar-icon >.anticon{margin:0;}.ant-avatar-lg{width:var(--ant-avatar-container-size-lg);height:var(--ant-avatar-container-size-lg);border-radius:50%;}.ant-avatar-lg.ant-avatar-square{border-radius:var(--ant-border-radius-lg);}.ant-avatar-lg.ant-avatar-icon{font-size:var(--ant-avatar-text-font-size-lg);}.ant-avatar-lg.ant-avatar-icon >.anticon{margin:0;}.ant-avatar-sm{width:var(--ant-avatar-container-size-sm);height:var(--ant-avatar-container-size-sm);border-radius:50%;}.ant-avatar-sm.ant-avatar-square{border-radius:var(--ant-border-radius-sm);}.ant-avatar-sm.ant-avatar-icon{font-size:var(--ant-avatar-text-font-size-sm);}.ant-avatar-sm.ant-avatar-icon >.anticon{margin:0;}.ant-avatar >img{display:block;width:100%;height:100%;object-fit:cover;}.ant-avatar-group{display:inline-flex;}.ant-avatar-group .ant-avatar{border-color:var(--ant-avatar-group-border-color);}.ant-avatar-group >*:not(:first-child){margin-inline-start:var(--ant-avatar-group-overlapping);}.ant-avatar-group-popover .ant-avatar+.ant-avatar{margin-inline-start:var(--ant-avatar-group-space);}.ant-tag.ant-tag-success{color:var(--ant-color-success);background:var(--ant-color-success-bg);border-color:var(--ant-color-success-border);}.ant-tag.ant-tag-success.ant-tag-borderless{border-color:transparent;}.ant-tag.ant-tag-processing{color:var(--ant-color-info);background:var(--ant-color-info-bg);border-color:var(--ant-color-info-border);}.ant-tag.ant-tag-processing.ant-tag-borderless{border-color:transparent;}.ant-tag.ant-tag-error{color:var(--ant-color-error);background:var(--ant-color-error-bg);border-color:var(--ant-color-error-border);}.ant-tag.ant-tag-error.ant-tag-borderless{border-color:transparent;}.ant-tag.ant-tag-warning{color:var(--ant-color-warning);background:var(--ant-color-warning-bg);border-color:var(--ant-color-warning-border);}.ant-tag.ant-tag-warning.ant-tag-borderless{border-color:transparent;}.anticon{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.anticon >*{line-height:1;}.anticon svg{display:inline-block;}.anticon .anticon .anticon-icon{display:block;}.anticon{display:inline-flex;align-items:center;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.anticon >*{line-height:1;}.anticon svg{display:inline-block;}.anticon .anticon .anticon-icon{display:block;}.data-ant-cssinjs-cache-path{content:"1h9lh7|ant-design-icons|anticon:t3az4e;x8bsws|ant-design-icons|anticon:18dg9uk;ongb7q|Shared|ant:15yrn01;ongb7q|App-App|ant-app|anticon:1azkv62;ongb7q|Grid-Grid|ant-row|anticon:1g8hfxu;ongb7q|Grid-Grid|ant-col|anticon:jcxrvo;ongb7q|Menu-Menu|ant-menu|anticon:1rci74z;ongb7q|Tooltip-Tooltip|ant-tooltip|anticon:ecq328;ongb7q|Select-Select|ant-select|anticon:15g85rv;ongb7q|Button-Button|ant-btn|anticon:pek25j;ongb7q|Dropdown-Dropdown|ant-dropdown|anticon:ig8iso;ongb7q|Flex-Flex|ant-flex|anticon:12d2ayr;ongb7q|Tag-Tag|ant-tag|anticon:1uffjha;ongb7q|Tag-status|ant-tag|anticon:22jiwe;ongb7q|Anchor-Anchor|ant-anchor|anticon:1y5vxg3;ongb7q|Typography-Typography|ant-typography|anticon:6ktg6k;ongb7q|Space-Space|ant-space|anticon:fiit93;ongb7q|Avatar-Avatar|ant-avatar|anticon:6y7btx";}</style><style data-type="antd-css-var" data-rc-order="prepend" data-rc-priority="-9999">.css-var-«R2a»{--ant-blue:#1677FF;--ant-purple:#722ED1;--ant-cyan:#13C2C2;--ant-green:#52C41A;--ant-magenta:#EB2F96;--ant-pink:#EB2F96;--ant-red:#F5222D;--ant-orange:#FA8C16;--ant-yellow:#FADB14;--ant-volcano:#FA541C;--ant-geekblue:#2F54EB;--ant-gold:#FAAD14;--ant-lime:#A0D911;--ant-color-primary:#1677ff;--ant-color-success:#52c41a;--ant-color-warning:#faad14;--ant-color-error:#ff4d4f;--ant-color-info:#1677ff;--ant-color-link:#1677ff;--ant-color-text-base:#000;--ant-color-bg-base:#fff;--ant-font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
'Noto Color Emoji';--ant-font-family-code:'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;--ant-font-size:14px;--ant-line-width:1px;--ant-line-type:solid;--ant-motion-ease-out-circ:cubic-bezier(0.08, 0.82, 0.17, 1);--ant-motion-ease-in-out-circ:cubic-bezier(0.78, 0.14, 0.15, 0.86);--ant-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--ant-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--ant-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--ant-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--ant-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--ant-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--ant-border-radius:6px;--ant-size-popup-arrow:16px;--ant-control-height:32px;--ant-z-index-base:0;--ant-z-index-popup-base:1000;--ant-opacity-image:1;--ant-blue-1:#e6f4ff;--ant-blue-2:#bae0ff;--ant-blue-3:#91caff;--ant-blue-4:#69b1ff;--ant-blue-5:#4096ff;--ant-blue-6:#1677ff;--ant-blue-7:#0958d9;--ant-blue-8:#003eb3;--ant-blue-9:#002c8c;--ant-blue-10:#001d66;--ant-purple-1:#f9f0ff;--ant-purple-2:#efdbff;--ant-purple-3:#d3adf7;--ant-purple-4:#b37feb;--ant-purple-5:#9254de;--ant-purple-6:#722ed1;--ant-purple-7:#531dab;--ant-purple-8:#391085;--ant-purple-9:#22075e;--ant-purple-10:#120338;--ant-cyan-1:#e6fffb;--ant-cyan-2:#b5f5ec;--ant-cyan-3:#87e8de;--ant-cyan-4:#5cdbd3;--ant-cyan-5:#36cfc9;--ant-cyan-6:#13c2c2;--ant-cyan-7:#08979c;--ant-cyan-8:#006d75;--ant-cyan-9:#00474f;--ant-cyan-10:#002329;--ant-green-1:#f6ffed;--ant-green-2:#d9f7be;--ant-green-3:#b7eb8f;--ant-green-4:#95de64;--ant-green-5:#73d13d;--ant-green-6:#52c41a;--ant-green-7:#389e0d;--ant-green-8:#237804;--ant-green-9:#135200;--ant-green-10:#092b00;--ant-magenta-1:#fff0f6;--ant-magenta-2:#ffd6e7;--ant-magenta-3:#ffadd2;--ant-magenta-4:#ff85c0;--ant-magenta-5:#f759ab;--ant-magenta-6:#eb2f96;--ant-magenta-7:#c41d7f;--ant-magenta-8:#9e1068;--ant-magenta-9:#780650;--ant-magenta-10:#520339;--ant-pink-1:#fff0f6;--ant-pink-2:#ffd6e7;--ant-pink-3:#ffadd2;--ant-pink-4:#ff85c0;--ant-pink-5:#f759ab;--ant-pink-6:#eb2f96;--ant-pink-7:#c41d7f;--ant-pink-8:#9e1068;--ant-pink-9:#780650;--ant-pink-10:#520339;--ant-red-1:#fff1f0;--ant-red-2:#ffccc7;--ant-red-3:#ffa39e;--ant-red-4:#ff7875;--ant-red-5:#ff4d4f;--ant-red-6:#f5222d;--ant-red-7:#cf1322;--ant-red-8:#a8071a;--ant-red-9:#820014;--ant-red-10:#5c0011;--ant-orange-1:#fff7e6;--ant-orange-2:#ffe7ba;--ant-orange-3:#ffd591;--ant-orange-4:#ffc069;--ant-orange-5:#ffa940;--ant-orange-6:#fa8c16;--ant-orange-7:#d46b08;--ant-orange-8:#ad4e00;--ant-orange-9:#873800;--ant-orange-10:#612500;--ant-yellow-1:#feffe6;--ant-yellow-2:#ffffb8;--ant-yellow-3:#fffb8f;--ant-yellow-4:#fff566;--ant-yellow-5:#ffec3d;--ant-yellow-6:#fadb14;--ant-yellow-7:#d4b106;--ant-yellow-8:#ad8b00;--ant-yellow-9:#876800;--ant-yellow-10:#614700;--ant-volcano-1:#fff2e8;--ant-volcano-2:#ffd8bf;--ant-volcano-3:#ffbb96;--ant-volcano-4:#ff9c6e;--ant-volcano-5:#ff7a45;--ant-volcano-6:#fa541c;--ant-volcano-7:#d4380d;--ant-volcano-8:#ad2102;--ant-volcano-9:#871400;--ant-volcano-10:#610b00;--ant-geekblue-1:#f0f5ff;--ant-geekblue-2:#d6e4ff;--ant-geekblue-3:#adc6ff;--ant-geekblue-4:#85a5ff;--ant-geekblue-5:#597ef7;--ant-geekblue-6:#2f54eb;--ant-geekblue-7:#1d39c4;--ant-geekblue-8:#10239e;--ant-geekblue-9:#061178;--ant-geekblue-10:#030852;--ant-gold-1:#fffbe6;--ant-gold-2:#fff1b8;--ant-gold-3:#ffe58f;--ant-gold-4:#ffd666;--ant-gold-5:#ffc53d;--ant-gold-6:#faad14;--ant-gold-7:#d48806;--ant-gold-8:#ad6800;--ant-gold-9:#874d00;--ant-gold-10:#613400;--ant-lime-1:#fcffe6;--ant-lime-2:#f4ffb8;--ant-lime-3:#eaff8f;--ant-lime-4:#d3f261;--ant-lime-5:#bae637;--ant-lime-6:#a0d911;--ant-lime-7:#7cb305;--ant-lime-8:#5b8c00;--ant-lime-9:#3f6600;--ant-lime-10:#254000;--ant-color-text:rgba(0,0,0,0.88);--ant-color-text-secondary:rgba(0,0,0,0.65);--ant-color-text-tertiary:rgba(0,0,0,0.45);--ant-color-text-quaternary:rgba(0,0,0,0.25);--ant-color-fill:rgba(0,0,0,0.15);--ant-color-fill-secondary:rgba(0,0,0,0.06);--ant-color-fill-tertiary:rgba(0,0,0,0.04);--ant-color-fill-quaternary:rgba(0,0,0,0.02);--ant-color-bg-solid:rgb(0,0,0);--ant-color-bg-solid-hover:rgba(0,0,0,0.75);--ant-color-bg-solid-active:rgba(0,0,0,0.95);--ant-color-bg-layout:#f5f5f5;--ant-color-bg-container:#ffffff;--ant-color-bg-elevated:#ffffff;--ant-color-bg-spotlight:rgba(0,0,0,0.85);--ant-color-bg-blur:transparent;--ant-color-border:#d9d9d9;--ant-color-border-secondary:#f0f0f0;--ant-color-primary-bg:#e6f4ff;--ant-color-primary-bg-hover:#bae0ff;--ant-color-primary-border:#91caff;--ant-color-primary-border-hover:#69b1ff;--ant-color-primary-hover:#4096ff;--ant-color-primary-active:#0958d9;--ant-color-primary-text-hover:#4096ff;--ant-color-primary-text:#1677ff;--ant-color-primary-text-active:#0958d9;--ant-color-success-bg:#f6ffed;--ant-color-success-bg-hover:#d9f7be;--ant-color-success-border:#b7eb8f;--ant-color-success-border-hover:#95de64;--ant-color-success-hover:#95de64;--ant-color-success-active:#389e0d;--ant-color-success-text-hover:#73d13d;--ant-color-success-text:#52c41a;--ant-color-success-text-active:#389e0d;--ant-color-error-bg:#fff2f0;--ant-color-error-bg-hover:#fff1f0;--ant-color-error-bg-filled-hover:#ffdfdc;--ant-color-error-bg-active:#ffccc7;--ant-color-error-border:#ffccc7;--ant-color-error-border-hover:#ffa39e;--ant-color-error-hover:#ff7875;--ant-color-error-active:#d9363e;--ant-color-error-text-hover:#ff7875;--ant-color-error-text:#ff4d4f;--ant-color-error-text-active:#d9363e;--ant-color-warning-bg:#fffbe6;--ant-color-warning-bg-hover:#fff1b8;--ant-color-warning-border:#ffe58f;--ant-color-warning-border-hover:#ffd666;--ant-color-warning-hover:#ffd666;--ant-color-warning-active:#d48806;--ant-color-warning-text-hover:#ffc53d;--ant-color-warning-text:#faad14;--ant-color-warning-text-active:#d48806;--ant-color-info-bg:#e6f4ff;--ant-color-info-bg-hover:#bae0ff;--ant-color-info-border:#91caff;--ant-color-info-border-hover:#69b1ff;--ant-color-info-hover:#69b1ff;--ant-color-info-active:#0958d9;--ant-color-info-text-hover:#4096ff;--ant-color-info-text:#1677ff;--ant-color-info-text-active:#0958d9;--ant-color-link-hover:#69b1ff;--ant-color-link-active:#0958d9;--ant-color-bg-mask:rgba(0,0,0,0.45);--ant-color-white:#fff;--ant-font-size-sm:12px;--ant-font-size-lg:16px;--ant-font-size-xl:20px;--ant-font-size-heading-1:38px;--ant-font-size-heading-2:30px;--ant-font-size-heading-3:24px;--ant-font-size-heading-4:20px;--ant-font-size-heading-5:16px;--ant-line-height:1.5714285714285714;--ant-line-height-lg:1.5;--ant-line-height-sm:1.6666666666666667;--ant-font-height:22px;--ant-font-height-lg:24px;--ant-font-height-sm:20px;--ant-line-height-heading-1:1.2105263157894737;--ant-line-height-heading-2:1.2666666666666666;--ant-line-height-heading-3:1.3333333333333333;--ant-line-height-heading-4:1.4;--ant-line-height-heading-5:1.5;--ant-control-height-sm:24px;--ant-control-height-xs:16px;--ant-control-height-lg:40px;--ant-motion-duration-fast:0.1s;--ant-motion-duration-mid:0.2s;--ant-motion-duration-slow:0.3s;--ant-line-width-bold:2px;--ant-border-radius-xs:2px;--ant-border-radius-sm:4px;--ant-border-radius-lg:8px;--ant-border-radius-outer:4px;--ant-color-fill-content:rgba(0,0,0,0.06);--ant-color-fill-content-hover:rgba(0,0,0,0.15);--ant-color-fill-alter:rgba(0,0,0,0.02);--ant-color-bg-container-disabled:rgba(0,0,0,0.04);--ant-color-border-bg:#ffffff;--ant-color-split:rgba(5,5,5,0.06);--ant-color-text-placeholder:rgba(0,0,0,0.25);--ant-color-text-disabled:rgba(0,0,0,0.25);--ant-color-text-heading:rgba(0,0,0,0.88);--ant-color-text-label:rgba(0,0,0,0.65);--ant-color-text-description:rgba(0,0,0,0.45);--ant-color-text-light-solid:#fff;--ant-color-highlight:#ff4d4f;--ant-color-bg-text-hover:rgba(0,0,0,0.06);--ant-color-bg-text-active:rgba(0,0,0,0.15);--ant-color-icon:rgba(0,0,0,0.45);--ant-color-icon-hover:rgba(0,0,0,0.88);--ant-color-error-outline:rgba(255,38,5,0.06);--ant-color-warning-outline:rgba(255,215,5,0.1);--ant-font-size-icon:12px;--ant-line-width-focus:3px;--ant-control-outline-width:2px;--ant-control-interactive-size:16px;--ant-control-item-bg-hover:rgba(0,0,0,0.04);--ant-control-item-bg-active:#e6f4ff;--ant-control-item-bg-active-hover:#bae0ff;--ant-control-item-bg-active-disabled:rgba(0,0,0,0.15);--ant-control-tmp-outline:rgba(0,0,0,0.02);--ant-control-outline:rgba(5,145,255,0.1);--ant-font-weight-strong:600;--ant-opacity-loading:0.65;--ant-link-decoration:none;--ant-link-hover-decoration:none;--ant-link-focus-decoration:none;--ant-control-padding-horizontal:12px;--ant-control-padding-horizontal-sm:8px;--ant-padding-xxs:4px;--ant-padding-xs:8px;--ant-padding-sm:12px;--ant-padding:16px;--ant-padding-md:20px;--ant-padding-lg:24px;--ant-padding-xl:32px;--ant-padding-content-horizontal-lg:24px;--ant-padding-content-vertical-lg:16px;--ant-padding-content-horizontal:16px;--ant-padding-content-vertical:12px;--ant-padding-content-horizontal-sm:16px;--ant-padding-content-vertical-sm:8px;--ant-margin-xxs:4px;--ant-margin-xs:8px;--ant-margin-sm:12px;--ant-margin:16px;--ant-margin-md:20px;--ant-margin-lg:24px;--ant-margin-xl:32px;--ant-margin-xxl:48px;--ant-box-shadow:
0 6px 16px 0 rgba(0, 0, 0, 0.08),
0 3px 6px -4px rgba(0, 0, 0, 0.12),
0 9px 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-secondary:
0 6px 16px 0 rgba(0, 0, 0, 0.08),
0 3px 6px -4px rgba(0, 0, 0, 0.12),
0 9px 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-tertiary:
0 1px 2px 0 rgba(0, 0, 0, 0.03),
0 1px 6px -1px rgba(0, 0, 0, 0.02),
0 2px 4px 0 rgba(0, 0, 0, 0.02)
;--ant-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--ant-box-shadow-card:
0 1px 2px -2px rgba(0,0,0,0.16),
0 3px 6px 0 rgba(0,0,0,0.12),
0 5px 12px 4px rgba(0,0,0,0.09)
;--ant-box-shadow-drawer-right:
-6px 0 16px 0 rgba(0, 0, 0, 0.08),
-3px 0 6px -4px rgba(0, 0, 0, 0.12),
-9px 0 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-drawer-left:
6px 0 16px 0 rgba(0, 0, 0, 0.08),
3px 0 6px -4px rgba(0, 0, 0, 0.12),
9px 0 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-drawer-up:
0 6px 16px 0 rgba(0, 0, 0, 0.08),
0 3px 6px -4px rgba(0, 0, 0, 0.12),
0 9px 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-drawer-down:
0 -6px 16px 0 rgba(0, 0, 0, 0.08),
0 -3px 6px -4px rgba(0, 0, 0, 0.12),
0 -9px 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--ant-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--ant-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--ant-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);}.css-var-«R2a».ant-menu-css-var{--ant-menu-dropdown-width:160px;--ant-menu-z-index-popup:1050;--ant-menu-radius-item:8px;--ant-menu-item-border-radius:8px;--ant-menu-radius-sub-menu-item:4px;--ant-menu-sub-menu-item-border-radius:4px;--ant-menu-color-item-text:rgba(0,0,0,0.88);--ant-menu-item-color:rgba(0,0,0,0.88);--ant-menu-color-item-text-hover:rgba(0,0,0,0.88);--ant-menu-item-hover-color:rgba(0,0,0,0.88);--ant-menu-color-item-text-hover-horizontal:#1677ff;--ant-menu-horizontal-item-hover-color:#1677ff;--ant-menu-color-group-title:rgba(0,0,0,0.45);--ant-menu-group-title-color:rgba(0,0,0,0.45);--ant-menu-color-item-text-selected:#1677ff;--ant-menu-item-selected-color:#1677ff;--ant-menu-sub-menu-item-selected-color:#1677ff;--ant-menu-color-item-text-selected-horizontal:#1677ff;--ant-menu-horizontal-item-selected-color:#1677ff;--ant-menu-color-item-bg:#ffffff;--ant-menu-item-bg:#ffffff;--ant-menu-color-item-bg-hover:rgba(0,0,0,0.06);--ant-menu-item-hover-bg:rgba(0,0,0,0.06);--ant-menu-color-item-bg-active:rgba(0,0,0,0.06);--ant-menu-item-active-bg:#e6f4ff;--ant-menu-color-sub-item-bg:rgba(0,0,0,0.02);--ant-menu-sub-menu-item-bg:rgba(0,0,0,0.02);--ant-menu-color-item-bg-selected:#e6f4ff;--ant-menu-item-selected-bg:#e6f4ff;--ant-menu-color-item-bg-selected-horizontal:transparent;--ant-menu-horizontal-item-selected-bg:transparent;--ant-menu-color-active-bar-width:0px;--ant-menu-active-bar-width:0px;--ant-menu-color-active-bar-height:2px;--ant-menu-active-bar-height:2px;--ant-menu-color-active-bar-border-size:1px;--ant-menu-active-bar-border-width:1px;--ant-menu-color-item-text-disabled:rgba(0,0,0,0.25);--ant-menu-item-disabled-color:rgba(0,0,0,0.25);--ant-menu-color-danger-item-text:#ff4d4f;--ant-menu-danger-item-color:#ff4d4f;--ant-menu-color-danger-item-text-hover:#ff4d4f;--ant-menu-danger-item-hover-color:#ff4d4f;--ant-menu-color-danger-item-text-selected:#ff4d4f;--ant-menu-danger-item-selected-color:#ff4d4f;--ant-menu-color-danger-item-bg-active:#fff2f0;--ant-menu-danger-item-active-bg:#fff2f0;--ant-menu-color-danger-item-bg-selected:#fff2f0;--ant-menu-danger-item-selected-bg:#fff2f0;--ant-menu-item-margin-inline:4px;--ant-menu-horizontal-item-border-radius:0px;--ant-menu-horizontal-item-hover-bg:transparent;--ant-menu-item-height:40px;--ant-menu-group-title-line-height:1.5714285714285714;--ant-menu-collapsed-width:80px;--ant-menu-popup-bg:#ffffff;--ant-menu-item-margin-block:4px;--ant-menu-item-padding-inline:16px;--ant-menu-horizontal-line-height:46px;--ant-menu-icon-size:14px;--ant-menu-icon-margin-inline-end:10px;--ant-menu-collapsed-icon-size:16px;--ant-menu-group-title-font-size:14px;--ant-menu-dark-item-disabled-color:rgba(255,255,255,0.25);--ant-menu-dark-item-color:rgba(255,255,255,0.65);--ant-menu-dark-danger-item-color:#ff4d4f;--ant-menu-dark-item-bg:#001529;--ant-menu-dark-popup-bg:#001529;--ant-menu-dark-sub-menu-item-bg:#000c17;--ant-menu-dark-item-selected-color:#fff;--ant-menu-dark-item-selected-bg:#1677ff;--ant-menu-dark-danger-item-selected-bg:#ff4d4f;--ant-menu-dark-item-hover-bg:transparent;--ant-menu-dark-group-title-color:rgba(255,255,255,0.65);--ant-menu-dark-item-hover-color:#fff;--ant-menu-dark-danger-item-hover-color:#ff7875;--ant-menu-dark-danger-item-selected-color:#fff;--ant-menu-dark-danger-item-active-bg:#ff4d4f;--ant-menu-item-width:calc(100% - 8px);}.css-var-«R2a».ant-tooltip{--ant-tooltip-z-index-popup:1070;--ant-tooltip-arrow-offset-horizontal:12px;--ant-tooltip-arrow-offset-vertical:8px;--ant-tooltip-arrow-shadow-width:8.970562748477143px;--ant-tooltip-arrow-path:path('M 0 8 A 4 4 0 0 0 2.82842712474619 6.82842712474619 L 6.585786437626905 3.0710678118654755 A 2 2 0 0 1 9.414213562373096 3.0710678118654755 L 13.17157287525381 6.82842712474619 A 4 4 0 0 0 16 8 Z');--ant-tooltip-arrow-polygon:polygon(1.6568542494923806px 100%, 50% 1.6568542494923806px, 14.34314575050762px 100%, 1.6568542494923806px 100%);}.css-var-«R2a».ant-select-css-var{--ant-select-internal_fixed_item_margin:2px;--ant-select-z-index-popup:1050;--ant-select-option-selected-color:rgba(0,0,0,0.88);--ant-select-option-selected-font-weight:600;--ant-select-option-selected-bg:#e6f4ff;--ant-select-option-active-bg:rgba(0,0,0,0.04);--ant-select-option-padding:5px 12px;--ant-select-option-font-size:14px;--ant-select-option-line-height:1.5714285714285714;--ant-select-option-height:32px;--ant-select-selector-bg:#ffffff;--ant-select-clear-bg:#ffffff;--ant-select-single-item-height-lg:40px;--ant-select-multiple-item-bg:rgba(0,0,0,0.06);--ant-select-multiple-item-border-color:transparent;--ant-select-multiple-item-height:24px;--ant-select-multiple-item-height-sm:16px;--ant-select-multiple-item-height-lg:32px;--ant-select-multiple-selector-bg-disabled:rgba(0,0,0,0.04);--ant-select-multiple-item-color-disabled:rgba(0,0,0,0.25);--ant-select-multiple-item-border-color-disabled:transparent;--ant-select-show-arrow-padding-inline-end:18px;--ant-select-hover-border-color:#4096ff;--ant-select-active-border-color:#1677ff;--ant-select-active-outline-color:rgba(5,145,255,0.1);--ant-select-select-affix-padding:4px;}.css-var-«R2a».ant-btn{--ant-button-blue-shadow-color:0 2px 0 rgba(5,145,255,0.1);--ant-button-purple-shadow-color:0 2px 0 rgba(155,5,255,0.06);--ant-button-cyan-shadow-color:0 2px 0 rgba(5,255,215,0.1);--ant-button-green-shadow-color:0 2px 0 rgba(142,255,30,0.08);--ant-button-magenta-shadow-color:0 2px 0 rgba(255,5,105,0.06);--ant-button-pink-shadow-color:0 2px 0 rgba(255,5,105,0.06);--ant-button-red-shadow-color:0 2px 0 rgba(255,22,5,0.06);--ant-button-orange-shadow-color:0 2px 0 rgba(255,175,5,0.1);--ant-button-yellow-shadow-color:0 2px 0 rgba(245,255,5,0.1);--ant-button-volcano-shadow-color:0 2px 0 rgba(255,125,25,0.1);--ant-button-geekblue-shadow-color:0 2px 0 rgba(5,88,255,0.06);--ant-button-lime-shadow-color:0 2px 0 rgba(225,255,5,0.1);--ant-button-gold-shadow-color:0 2px 0 rgba(255,215,5,0.1);--ant-button-font-weight:400;--ant-button-default-shadow:0 2px 0 rgba(0,0,0,0.02);--ant-button-primary-shadow:0 2px 0 rgba(5,145,255,0.1);--ant-button-danger-shadow:0 2px 0 rgba(255,38,5,0.06);--ant-button-primary-color:#fff;--ant-button-danger-color:#fff;--ant-button-border-color-disabled:#d9d9d9;--ant-button-default-ghost-color:#ffffff;--ant-button-ghost-bg:transparent;--ant-button-default-ghost-border-color:#ffffff;--ant-button-padding-inline:15px;--ant-button-padding-inline-lg:15px;--ant-button-padding-inline-sm:7px;--ant-button-only-icon-size:inherit;--ant-button-only-icon-size-sm:inherit;--ant-button-only-icon-size-lg:inherit;--ant-button-group-border-color:#4096ff;--ant-button-link-hover-bg:transparent;--ant-button-text-text-color:rgba(0,0,0,0.88);--ant-button-text-text-hover-color:rgba(0,0,0,0.88);--ant-button-text-text-active-color:rgba(0,0,0,0.88);--ant-button-text-hover-bg:rgba(0,0,0,0.04);--ant-button-default-color:rgba(0,0,0,0.88);--ant-button-default-bg:#ffffff;--ant-button-default-border-color:#d9d9d9;--ant-button-default-border-color-disabled:#d9d9d9;--ant-button-default-hover-bg:#ffffff;--ant-button-default-hover-color:#4096ff;--ant-button-default-hover-border-color:#4096ff;--ant-button-default-active-bg:#ffffff;--ant-button-default-active-color:#0958d9;--ant-button-default-active-border-color:#0958d9;--ant-button-solid-text-color:#fff;--ant-button-content-font-size:14px;--ant-button-content-font-size-sm:14px;--ant-button-content-font-size-lg:16px;--ant-button-content-line-height:1.5714285714285714;--ant-button-content-line-height-sm:1.5714285714285714;--ant-button-content-line-height-lg:1.5;--ant-button-padding-block:4px;--ant-button-padding-block-sm:0px;--ant-button-padding-block-lg:7px;}.css-var-«R2a».ant-dropdown-css-var{--ant-dropdown-z-index-popup:1050;--ant-dropdown-padding-block:5px;--ant-dropdown-arrow-offset-horizontal:12px;--ant-dropdown-arrow-offset-vertical:8px;--ant-dropdown-arrow-shadow-width:8.970562748477143px;--ant-dropdown-arrow-path:path('M 0 8 A 4 4 0 0 0 2.82842712474619 6.82842712474619 L 6.585786437626905 3.0710678118654755 A 2 2 0 0 1 9.414213562373096 3.0710678118654755 L 13.17157287525381 6.82842712474619 A 4 4 0 0 0 16 8 Z');--ant-dropdown-arrow-polygon:polygon(1.6568542494923806px 100%, 50% 1.6568542494923806px, 14.34314575050762px 100%, 1.6568542494923806px 100%);}.css-var-«R2nd5cma»{--ant-blue:#1677FF;--ant-purple:#722ED1;--ant-cyan:#13C2C2;--ant-green:#52C41A;--ant-magenta:#EB2F96;--ant-pink:#EB2F96;--ant-red:#F5222D;--ant-orange:#FA8C16;--ant-yellow:#FADB14;--ant-volcano:#FA541C;--ant-geekblue:#2F54EB;--ant-gold:#FAAD14;--ant-lime:#A0D911;--ant-color-primary:#1677ff;--ant-color-success:#52c41a;--ant-color-warning:#faad14;--ant-color-error:#ff4d4f;--ant-color-info:#1677ff;--ant-color-link:#1677ff;--ant-color-text-base:#000;--ant-color-bg-base:#fff;--ant-font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
'Noto Color Emoji';--ant-font-family-code:'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;--ant-font-size:14px;--ant-line-width:1px;--ant-line-type:solid;--ant-motion-ease-out-circ:cubic-bezier(0.08, 0.82, 0.17, 1);--ant-motion-ease-in-out-circ:cubic-bezier(0.78, 0.14, 0.15, 0.86);--ant-motion-ease-out:cubic-bezier(0.215, 0.61, 0.355, 1);--ant-motion-ease-in-out:cubic-bezier(0.645, 0.045, 0.355, 1);--ant-motion-ease-out-back:cubic-bezier(0.12, 0.4, 0.29, 1.46);--ant-motion-ease-in-back:cubic-bezier(0.71, -0.46, 0.88, 0.6);--ant-motion-ease-in-quint:cubic-bezier(0.755, 0.05, 0.855, 0.06);--ant-motion-ease-out-quint:cubic-bezier(0.23, 1, 0.32, 1);--ant-border-radius:6px;--ant-size-popup-arrow:16px;--ant-control-height:32px;--ant-z-index-base:0;--ant-z-index-popup-base:1000;--ant-opacity-image:1;--ant-blue-1:#e6f4ff;--ant-blue-2:#bae0ff;--ant-blue-3:#91caff;--ant-blue-4:#69b1ff;--ant-blue-5:#4096ff;--ant-blue-6:#1677ff;--ant-blue-7:#0958d9;--ant-blue-8:#003eb3;--ant-blue-9:#002c8c;--ant-blue-10:#001d66;--ant-purple-1:#f9f0ff;--ant-purple-2:#efdbff;--ant-purple-3:#d3adf7;--ant-purple-4:#b37feb;--ant-purple-5:#9254de;--ant-purple-6:#722ed1;--ant-purple-7:#531dab;--ant-purple-8:#391085;--ant-purple-9:#22075e;--ant-purple-10:#120338;--ant-cyan-1:#e6fffb;--ant-cyan-2:#b5f5ec;--ant-cyan-3:#87e8de;--ant-cyan-4:#5cdbd3;--ant-cyan-5:#36cfc9;--ant-cyan-6:#13c2c2;--ant-cyan-7:#08979c;--ant-cyan-8:#006d75;--ant-cyan-9:#00474f;--ant-cyan-10:#002329;--ant-green-1:#f6ffed;--ant-green-2:#d9f7be;--ant-green-3:#b7eb8f;--ant-green-4:#95de64;--ant-green-5:#73d13d;--ant-green-6:#52c41a;--ant-green-7:#389e0d;--ant-green-8:#237804;--ant-green-9:#135200;--ant-green-10:#092b00;--ant-magenta-1:#fff0f6;--ant-magenta-2:#ffd6e7;--ant-magenta-3:#ffadd2;--ant-magenta-4:#ff85c0;--ant-magenta-5:#f759ab;--ant-magenta-6:#eb2f96;--ant-magenta-7:#c41d7f;--ant-magenta-8:#9e1068;--ant-magenta-9:#780650;--ant-magenta-10:#520339;--ant-pink-1:#fff0f6;--ant-pink-2:#ffd6e7;--ant-pink-3:#ffadd2;--ant-pink-4:#ff85c0;--ant-pink-5:#f759ab;--ant-pink-6:#eb2f96;--ant-pink-7:#c41d7f;--ant-pink-8:#9e1068;--ant-pink-9:#780650;--ant-pink-10:#520339;--ant-red-1:#fff1f0;--ant-red-2:#ffccc7;--ant-red-3:#ffa39e;--ant-red-4:#ff7875;--ant-red-5:#ff4d4f;--ant-red-6:#f5222d;--ant-red-7:#cf1322;--ant-red-8:#a8071a;--ant-red-9:#820014;--ant-red-10:#5c0011;--ant-orange-1:#fff7e6;--ant-orange-2:#ffe7ba;--ant-orange-3:#ffd591;--ant-orange-4:#ffc069;--ant-orange-5:#ffa940;--ant-orange-6:#fa8c16;--ant-orange-7:#d46b08;--ant-orange-8:#ad4e00;--ant-orange-9:#873800;--ant-orange-10:#612500;--ant-yellow-1:#feffe6;--ant-yellow-2:#ffffb8;--ant-yellow-3:#fffb8f;--ant-yellow-4:#fff566;--ant-yellow-5:#ffec3d;--ant-yellow-6:#fadb14;--ant-yellow-7:#d4b106;--ant-yellow-8:#ad8b00;--ant-yellow-9:#876800;--ant-yellow-10:#614700;--ant-volcano-1:#fff2e8;--ant-volcano-2:#ffd8bf;--ant-volcano-3:#ffbb96;--ant-volcano-4:#ff9c6e;--ant-volcano-5:#ff7a45;--ant-volcano-6:#fa541c;--ant-volcano-7:#d4380d;--ant-volcano-8:#ad2102;--ant-volcano-9:#871400;--ant-volcano-10:#610b00;--ant-geekblue-1:#f0f5ff;--ant-geekblue-2:#d6e4ff;--ant-geekblue-3:#adc6ff;--ant-geekblue-4:#85a5ff;--ant-geekblue-5:#597ef7;--ant-geekblue-6:#2f54eb;--ant-geekblue-7:#1d39c4;--ant-geekblue-8:#10239e;--ant-geekblue-9:#061178;--ant-geekblue-10:#030852;--ant-gold-1:#fffbe6;--ant-gold-2:#fff1b8;--ant-gold-3:#ffe58f;--ant-gold-4:#ffd666;--ant-gold-5:#ffc53d;--ant-gold-6:#faad14;--ant-gold-7:#d48806;--ant-gold-8:#ad6800;--ant-gold-9:#874d00;--ant-gold-10:#613400;--ant-lime-1:#fcffe6;--ant-lime-2:#f4ffb8;--ant-lime-3:#eaff8f;--ant-lime-4:#d3f261;--ant-lime-5:#bae637;--ant-lime-6:#a0d911;--ant-lime-7:#7cb305;--ant-lime-8:#5b8c00;--ant-lime-9:#3f6600;--ant-lime-10:#254000;--ant-color-text:rgba(0,0,0,0.88);--ant-color-text-secondary:rgba(0,0,0,0.65);--ant-color-text-tertiary:rgba(0,0,0,0.45);--ant-color-text-quaternary:rgba(0,0,0,0.25);--ant-color-fill:rgba(0,0,0,0.15);--ant-color-fill-secondary:rgba(0,0,0,0.06);--ant-color-fill-tertiary:rgba(0,0,0,0.04);--ant-color-fill-quaternary:rgba(0,0,0,0.02);--ant-color-bg-solid:rgb(0,0,0);--ant-color-bg-solid-hover:rgba(0,0,0,0.75);--ant-color-bg-solid-active:rgba(0,0,0,0.95);--ant-color-bg-layout:#f5f5f5;--ant-color-bg-container:#ffffff;--ant-color-bg-elevated:#ffffff;--ant-color-bg-spotlight:rgba(0,0,0,0.85);--ant-color-bg-blur:transparent;--ant-color-border:#d9d9d9;--ant-color-border-secondary:#f0f0f0;--ant-color-primary-bg:#e6f4ff;--ant-color-primary-bg-hover:#bae0ff;--ant-color-primary-border:#91caff;--ant-color-primary-border-hover:#69b1ff;--ant-color-primary-hover:#4096ff;--ant-color-primary-active:#0958d9;--ant-color-primary-text-hover:#4096ff;--ant-color-primary-text:#1677ff;--ant-color-primary-text-active:#0958d9;--ant-color-success-bg:#f6ffed;--ant-color-success-bg-hover:#d9f7be;--ant-color-success-border:#b7eb8f;--ant-color-success-border-hover:#95de64;--ant-color-success-hover:#95de64;--ant-color-success-active:#389e0d;--ant-color-success-text-hover:#73d13d;--ant-color-success-text:#52c41a;--ant-color-success-text-active:#389e0d;--ant-color-error-bg:#fff2f0;--ant-color-error-bg-hover:#fff1f0;--ant-color-error-bg-filled-hover:#ffdfdc;--ant-color-error-bg-active:#ffccc7;--ant-color-error-border:#ffccc7;--ant-color-error-border-hover:#ffa39e;--ant-color-error-hover:#ff7875;--ant-color-error-active:#d9363e;--ant-color-error-text-hover:#ff7875;--ant-color-error-text:#ff4d4f;--ant-color-error-text-active:#d9363e;--ant-color-warning-bg:#fffbe6;--ant-color-warning-bg-hover:#fff1b8;--ant-color-warning-border:#ffe58f;--ant-color-warning-border-hover:#ffd666;--ant-color-warning-hover:#ffd666;--ant-color-warning-active:#d48806;--ant-color-warning-text-hover:#ffc53d;--ant-color-warning-text:#faad14;--ant-color-warning-text-active:#d48806;--ant-color-info-bg:#e6f4ff;--ant-color-info-bg-hover:#bae0ff;--ant-color-info-border:#91caff;--ant-color-info-border-hover:#69b1ff;--ant-color-info-hover:#69b1ff;--ant-color-info-active:#0958d9;--ant-color-info-text-hover:#4096ff;--ant-color-info-text:#1677ff;--ant-color-info-text-active:#0958d9;--ant-color-link-hover:#69b1ff;--ant-color-link-active:#0958d9;--ant-color-bg-mask:rgba(0,0,0,0.45);--ant-color-white:#fff;--ant-font-size-sm:12px;--ant-font-size-lg:16px;--ant-font-size-xl:20px;--ant-font-size-heading-1:38px;--ant-font-size-heading-2:30px;--ant-font-size-heading-3:24px;--ant-font-size-heading-4:20px;--ant-font-size-heading-5:16px;--ant-line-height:1.5714285714285714;--ant-line-height-lg:1.5;--ant-line-height-sm:1.6666666666666667;--ant-font-height:22px;--ant-font-height-lg:24px;--ant-font-height-sm:20px;--ant-line-height-heading-1:1.2105263157894737;--ant-line-height-heading-2:1.2666666666666666;--ant-line-height-heading-3:1.3333333333333333;--ant-line-height-heading-4:1.4;--ant-line-height-heading-5:1.5;--ant-control-height-sm:24px;--ant-control-height-xs:16px;--ant-control-height-lg:40px;--ant-motion-duration-fast:0.1s;--ant-motion-duration-mid:0.2s;--ant-motion-duration-slow:0.3s;--ant-line-width-bold:2px;--ant-border-radius-xs:2px;--ant-border-radius-sm:4px;--ant-border-radius-lg:8px;--ant-border-radius-outer:4px;--ant-color-fill-content:rgba(0,0,0,0.06);--ant-color-fill-content-hover:rgba(0,0,0,0.15);--ant-color-fill-alter:rgba(0,0,0,0.02);--ant-color-bg-container-disabled:rgba(0,0,0,0.04);--ant-color-border-bg:#ffffff;--ant-color-split:rgba(5,5,5,0.06);--ant-color-text-placeholder:rgba(0,0,0,0.25);--ant-color-text-disabled:rgba(0,0,0,0.25);--ant-color-text-heading:rgba(0,0,0,0.88);--ant-color-text-label:rgba(0,0,0,0.65);--ant-color-text-description:rgba(0,0,0,0.45);--ant-color-text-light-solid:#fff;--ant-color-highlight:#ff4d4f;--ant-color-bg-text-hover:rgba(0,0,0,0.06);--ant-color-bg-text-active:rgba(0,0,0,0.15);--ant-color-icon:rgba(0,0,0,0.45);--ant-color-icon-hover:rgba(0,0,0,0.88);--ant-color-error-outline:rgba(255,38,5,0.06);--ant-color-warning-outline:rgba(255,215,5,0.1);--ant-font-size-icon:12px;--ant-line-width-focus:3px;--ant-control-outline-width:2px;--ant-control-interactive-size:16px;--ant-control-item-bg-hover:rgba(0,0,0,0.04);--ant-control-item-bg-active:#e6f4ff;--ant-control-item-bg-active-hover:#bae0ff;--ant-control-item-bg-active-disabled:rgba(0,0,0,0.15);--ant-control-tmp-outline:rgba(0,0,0,0.02);--ant-control-outline:rgba(5,145,255,0.1);--ant-font-weight-strong:600;--ant-opacity-loading:0.65;--ant-link-decoration:none;--ant-link-hover-decoration:none;--ant-link-focus-decoration:none;--ant-control-padding-horizontal:12px;--ant-control-padding-horizontal-sm:8px;--ant-padding-xxs:4px;--ant-padding-xs:8px;--ant-padding-sm:12px;--ant-padding:16px;--ant-padding-md:20px;--ant-padding-lg:24px;--ant-padding-xl:32px;--ant-padding-content-horizontal-lg:24px;--ant-padding-content-vertical-lg:16px;--ant-padding-content-horizontal:16px;--ant-padding-content-vertical:12px;--ant-padding-content-horizontal-sm:16px;--ant-padding-content-vertical-sm:8px;--ant-margin-xxs:4px;--ant-margin-xs:8px;--ant-margin-sm:12px;--ant-margin:16px;--ant-margin-md:20px;--ant-margin-lg:24px;--ant-margin-xl:32px;--ant-margin-xxl:48px;--ant-box-shadow:
0 6px 16px 0 rgba(0, 0, 0, 0.08),
0 3px 6px -4px rgba(0, 0, 0, 0.12),
0 9px 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-secondary:
0 6px 16px 0 rgba(0, 0, 0, 0.08),
0 3px 6px -4px rgba(0, 0, 0, 0.12),
0 9px 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-tertiary:
0 1px 2px 0 rgba(0, 0, 0, 0.03),
0 1px 6px -1px rgba(0, 0, 0, 0.02),
0 2px 4px 0 rgba(0, 0, 0, 0.02)
;--ant-box-shadow-popover-arrow:2px 2px 5px rgba(0, 0, 0, 0.05);--ant-box-shadow-card:
0 1px 2px -2px rgba(0,0,0,0.16),
0 3px 6px 0 rgba(0,0,0,0.12),
0 5px 12px 4px rgba(0,0,0,0.09)
;--ant-box-shadow-drawer-right:
-6px 0 16px 0 rgba(0, 0, 0, 0.08),
-3px 0 6px -4px rgba(0, 0, 0, 0.12),
-9px 0 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-drawer-left:
6px 0 16px 0 rgba(0, 0, 0, 0.08),
3px 0 6px -4px rgba(0, 0, 0, 0.12),
9px 0 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-drawer-up:
0 6px 16px 0 rgba(0, 0, 0, 0.08),
0 3px 6px -4px rgba(0, 0, 0, 0.12),
0 9px 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-drawer-down:
0 -6px 16px 0 rgba(0, 0, 0, 0.08),
0 -3px 6px -4px rgba(0, 0, 0, 0.12),
0 -9px 28px 8px rgba(0, 0, 0, 0.05)
;--ant-box-shadow-tabs-overflow-left:inset 10px 0 8px -8px rgba(0, 0, 0, 0.08);--ant-box-shadow-tabs-overflow-right:inset -10px 0 8px -8px rgba(0, 0, 0, 0.08);--ant-box-shadow-tabs-overflow-top:inset 0 10px 8px -8px rgba(0, 0, 0, 0.08);--ant-box-shadow-tabs-overflow-bottom:inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08);}.css-var-«R2nd5cma».ant-menu-css-var{--ant-menu-dropdown-width:160px;--ant-menu-z-index-popup:1050;--ant-menu-radius-item:8px;--ant-menu-item-border-radius:8px;--ant-menu-radius-sub-menu-item:4px;--ant-menu-sub-menu-item-border-radius:4px;--ant-menu-color-item-text:rgba(0,0,0,0.88);--ant-menu-item-color:rgba(0,0,0,0.88);--ant-menu-color-item-text-hover:rgba(0,0,0,0.88);--ant-menu-item-hover-color:rgba(0,0,0,0.88);--ant-menu-color-item-text-hover-horizontal:#1677ff;--ant-menu-horizontal-item-hover-color:#1677ff;--ant-menu-color-group-title:rgba(0,0,0,0.45);--ant-menu-group-title-color:rgba(0,0,0,0.45);--ant-menu-color-item-text-selected:#1677ff;--ant-menu-item-selected-color:#1677ff;--ant-menu-sub-menu-item-selected-color:#1677ff;--ant-menu-color-item-text-selected-horizontal:#1677ff;--ant-menu-horizontal-item-selected-color:#1677ff;--ant-menu-color-item-bg:#ffffff;--ant-menu-item-bg:#ffffff;--ant-menu-color-item-bg-hover:rgba(0,0,0,0.06);--ant-menu-item-hover-bg:rgba(0,0,0,0.06);--ant-menu-color-item-bg-active:rgba(0,0,0,0.06);--ant-menu-item-active-bg:#e6f4ff;--ant-menu-color-sub-item-bg:rgba(0,0,0,0.02);--ant-menu-sub-menu-item-bg:rgba(0,0,0,0.02);--ant-menu-color-item-bg-selected:#e6f4ff;--ant-menu-item-selected-bg:#e6f4ff;--ant-menu-color-item-bg-selected-horizontal:transparent;--ant-menu-horizontal-item-selected-bg:transparent;--ant-menu-color-active-bar-width:0px;--ant-menu-active-bar-width:0px;--ant-menu-color-active-bar-height:2px;--ant-menu-active-bar-height:2px;--ant-menu-color-active-bar-border-size:1px;--ant-menu-active-bar-border-width:1px;--ant-menu-color-item-text-disabled:rgba(0,0,0,0.25);--ant-menu-item-disabled-color:rgba(0,0,0,0.25);--ant-menu-color-danger-item-text:#ff4d4f;--ant-menu-danger-item-color:#ff4d4f;--ant-menu-color-danger-item-text-hover:#ff4d4f;--ant-menu-danger-item-hover-color:#ff4d4f;--ant-menu-color-danger-item-text-selected:#ff4d4f;--ant-menu-danger-item-selected-color:#ff4d4f;--ant-menu-color-danger-item-bg-active:#fff2f0;--ant-menu-danger-item-active-bg:#fff2f0;--ant-menu-color-danger-item-bg-selected:#fff2f0;--ant-menu-danger-item-selected-bg:#fff2f0;--ant-menu-item-margin-inline:4px;--ant-menu-horizontal-item-border-radius:0px;--ant-menu-horizontal-item-hover-bg:transparent;--ant-menu-item-height:40px;--ant-menu-group-title-line-height:1.5714285714285714;--ant-menu-collapsed-width:80px;--ant-menu-popup-bg:#ffffff;--ant-menu-item-margin-block:4px;--ant-menu-item-padding-inline:16px;--ant-menu-horizontal-line-height:46px;--ant-menu-icon-size:14px;--ant-menu-icon-margin-inline-end:10px;--ant-menu-collapsed-icon-size:16px;--ant-menu-group-title-font-size:14px;--ant-menu-dark-item-disabled-color:rgba(255,255,255,0.25);--ant-menu-dark-item-color:rgba(255,255,255,0.65);--ant-menu-dark-danger-item-color:#ff4d4f;--ant-menu-dark-item-bg:#ffffff;--ant-menu-dark-popup-bg:#001529;--ant-menu-dark-sub-menu-item-bg:#000c17;--ant-menu-dark-item-selected-color:#fff;--ant-menu-dark-item-selected-bg:#1677ff;--ant-menu-dark-danger-item-selected-bg:#ff4d4f;--ant-menu-dark-item-hover-bg:transparent;--ant-menu-dark-group-title-color:rgba(255,255,255,0.65);--ant-menu-dark-item-hover-color:#fff;--ant-menu-dark-danger-item-hover-color:#ff7875;--ant-menu-dark-danger-item-selected-color:#fff;--ant-menu-dark-danger-item-active-bg:#ff4d4f;--ant-menu-item-width:calc(100% - 8px);}.css-var-«R2nd5cma».ant-tooltip{--ant-tooltip-z-index-popup:1070;--ant-tooltip-arrow-offset-horizontal:12px;--ant-tooltip-arrow-offset-vertical:8px;--ant-tooltip-arrow-shadow-width:8.970562748477143px;--ant-tooltip-arrow-path:path('M 0 8 A 4 4 0 0 0 2.82842712474619 6.82842712474619 L 6.585786437626905 3.0710678118654755 A 2 2 0 0 1 9.414213562373096 3.0710678118654755 L 13.17157287525381 6.82842712474619 A 4 4 0 0 0 16 8 Z');--ant-tooltip-arrow-polygon:polygon(1.6568542494923806px 100%, 50% 1.6568542494923806px, 14.34314575050762px 100%, 1.6568542494923806px 100%);}.css-var-«R2nd5cma».ant-tag{--ant-tag-default-bg:#fafafa;--ant-tag-default-color:rgba(0,0,0,0.88);}.css-var-«R2a».ant-anchor-css-var{--ant-anchor-link-padding-block:4px;--ant-anchor-link-padding-inline-start:16px;}.css-var-«R2a».ant-typography{--ant-typography-title-margin-top:1.2em;--ant-typography-title-margin-bottom:0.5em;}.css-var-«R2a».ant-avatar-css-var{--ant-avatar-container-size:32px;--ant-avatar-container-size-lg:40px;--ant-avatar-container-size-sm:24px;--ant-avatar-text-font-size:18px;--ant-avatar-text-font-size-lg:24px;--ant-avatar-text-font-size-sm:14px;--ant-avatar-group-space:4px;--ant-avatar-group-overlapping:-8px;--ant-avatar-group-border-color:#ffffff;}.data-ant-cssinjs-cache-path{content:"";}</style><style data-sandpack="true" id="sandpack">--sxs{--sxs:0 light}@media{.light{--sp-space-1:4px;--sp-space-2:8px;--sp-space-3:12px;--sp-space-4:16px;--sp-space-5:20px;--sp-space-6:24px;--sp-space-7:28px;--sp-space-8:32px;--sp-space-9:36px;--sp-space-10:40px;--sp-space-11:44px;--sp-border-radius:4px;--sp-layout-height:300px;--sp-layout-headerHeight:40px;--sp-transitions-default:150ms ease;--sp-zIndices-base:1;--sp-zIndices-overlay:2;--sp-zIndices-top:3;--sp-colors-surface1:#ffffff;--sp-colors-surface2:#EFEFEF;--sp-colors-surface3:#F3F3F3;--sp-colors-disabled:#C5C5C5;--sp-colors-base:#323232;--sp-colors-clickable:#808080;--sp-colors-hover:#4D4D4D;--sp-colors-accent:#3973E0;--sp-colors-error:#EA3323;--sp-colors-errorSurface:#FCF1F0;--sp-colors-warning:#6A4516;--sp-colors-warningSurface:#FEF2C0;--sp-font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--sp-font-mono:"Fira Mono", "DejaVu Sans Mono", Menlo, Consolas, "Liberation Mono", Monaco, "Lucida Console", monospace;--sp-font-size:13px;--sp-font-lineHeight:20px;--sp-syntax-color-plain:#151515;--sp-syntax-color-comment:#999;--sp-syntax-fontStyle-comment:italic;--sp-syntax-color-keyword:#7C5AE3;--sp-syntax-color-tag:#0971F1;--sp-syntax-color-punctuation:#3B3B3B;--sp-syntax-color-definition:#85A600;--sp-syntax-color-property:#3B3B3B;--sp-syntax-color-static:#3B3B3B;--sp-syntax-color-string:#2E6BD0}}--sxs{--sxs:1 sp-k-eyOShd sp-k-iOHdLQ}@media{@keyframes sp-k-eyOShd{0%{opacity:0}100%{opacity:1}}@keyframes sp-k-iOHdLQ{0%{transform:rotateX(-25.5deg) rotateY(45deg)}100%{transform:rotateX(-25.5deg) rotateY(405deg)}}}--sxs{--sxs:2 sp-c-gMfcns sp-c-bxeRRt sp-c-jKPvnt sp-c-fWymNx sp-c-euXojQ sp-c-bpmgvy sp-c-PJLV sp-c-gvjhpQ sp-c-fVPbOs sp-c-ikJbEZ sp-c-gtcpyq sp-c-dyHYiL sp-c-gGbYbQ sp-c-hluGOI sp-c-pacmO sp-c-jOWzsE sp-c-jkvvao sp-c-juMdfR sp-c-fgviib sp-c-kwibBT sp-c-dEbKhQ sp-c-bcibQq}@media{.sp-c-gMfcns svg{margin:auto}.sp-c-bxeRRt{-webkit-appearance:none;appearance:none;outline:none;display:flex;align-items:center;font-size:inherit;font-family:inherit;background-color:transparent;transition:color var(--sp-transitions-default), background var(--sp-transitions-default);cursor:pointer;color:var(--sp-colors-clickable);border:0;text-decoration:none}.sp-c-bxeRRt:disabled{color:var(--sp-colors-disabled)}.sp-c-bxeRRt:hover:not(:disabled,[data-active='true']){color:var(--sp-colors-hover)}.sp-c-bxeRRt[data-active="true"]{color:var(--sp-colors-accent)}.sp-c-bxeRRt svg{min-width:var(--sp-space-4);width:var(--sp-space-4);height:var(--sp-space-4)}.sp-c-bxeRRt.sp-c-gMfcns{padding:var(--sp-space-1);height:var(--sp-space-7);display:flex}.sp-c-bxeRRt.sp-c-gMfcns.sp-c-bxeRRt:not(:has(span)){width:var(--sp-space-7)}.sp-c-bxeRRt.sp-c-gMfcns.sp-c-bxeRRt:has(svg + span){padding-right:var(--sp-space-3);padding-left:var(--sp-space-2);gap:var(--sp-space-1)}.sp-c-jKPvnt{padding:0 var(--sp-space-1) 0 var(--sp-space-1);border-radius:var(--sp-border-radius);margin-left:var(--sp-space-1);width:var(--sp-space-5);visibility:hidden;cursor:pointer;position:absolute;right:0px}.sp-c-jKPvnt svg{width:var(--sp-space-3);height:var(--sp-space-3);display:block;position:relative;top:1px}.sp-c-fWymNx{margin:0;display:block;font-family:var(--sp-font-mono);font-size:var(--sp-font-size);color:var(--sp-syntax-color-plain);line-height:var(--sp-font-lineHeight)}.sp-c-euXojQ{display:flex;flex-direction:column;width:100%;position:relative;background-color:var(--sp-colors-surface1);gap:1px}.sp-c-euXojQ:has(.sp-stack){background-color:var(--sp-colors-surface2)}.sp-c-bpmgvy{transform:translate(-4px, 9px) scale(0.13, 0.13)}.sp-c-bpmgvy *{position:absolute;width:96px;height:96px}.sp-c-gvjhpQ{position:absolute;z-index:var(--sp-zIndices-top)}@media screen and (max-width: 768px){.sp-c-gvjhpQ{display:none}}.sp-c-fVPbOs{all:initial;font-size:var(--sp-font-size);font-family:var(--sp-font-body);display:block;box-sizing:border-box;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:subpixel-antialiased}@media screen and (min-resolution: 2dppx){.sp-c-fVPbOs{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}.sp-c-fVPbOs *{box-sizing:border-box}.sp-c-fVPbOs .sp-wrapper:focus{outline:0}.sp-c-ikJbEZ{border:1px solid var(--sp-colors-surface2);display:flex;flex-wrap:wrap;align-items:stretch;border-radius:var(--sp-border-radius);overflow:hidden;position:relative;background-color:var(--sp-colors-surface2);gap:1px}.sp-c-ikJbEZ > .sp-c-euXojQ{flex-grow:1;flex-shrink:1;flex-basis:0;height:var(--sp-layout-height);overflow:hidden}@media print{.sp-c-ikJbEZ > .sp-c-euXojQ{height:auto;display:block}}@media screen and (max-width: 768px){.sp-c-ikJbEZ > .sp-c-euXojQ:not(.sp-preview, .sp-editor, .sp-preset-column){height:calc(var(--sp-layout-height) / 2)}}@media screen and (max-width: 768px){.sp-c-ikJbEZ > .sp-c-euXojQ{min-width:100%;}}.sp-c-ikJbEZ > .sp-file-explorer{flex:0.2;min-width:200px}@media screen and (max-width: 768px){.sp-c-ikJbEZ > .sp-file-explorer{flex:1}}.sp-c-gtcpyq{flex:1;position:relative;overflow:auto;background:var(--sp-colors-surface1)}.sp-c-gtcpyq .cm-scroller{padding:var(--sp-space-4) 0}.sp-c-gtcpyq .sp-c-fWymNx{padding:var(--sp-space-4) 0}@media screen and (max-width: 768px){@supports (-webkit-overflow-scrolling: touch){.sp-c-gtcpyq .cm-content{font-size:16px}}}.sp-c-dyHYiL{border-bottom:1px solid var(--sp-colors-surface2);background:var(--sp-colors-surface1)}.sp-c-gGbYbQ{padding:0 var(--sp-space-2);overflow:auto;display:flex;flex-wrap:nowrap;align-items:stretch;min-height:40px;margin-bottom:-1px}.sp-c-hluGOI{display:flex;align-items:center;outline:none;position:relative;padding-right:20px;margin:1px 0}.sp-c-hluGOI:has(button:focus){outline:var(--sp-colors-accent) auto 1px}.sp-c-pacmO{padding:0 var(--sp-space-2);height:var(--sp-layout-headerHeight);white-space:nowrap}.sp-c-pacmO:focus{outline:none}.sp-c-pacmO:hover ~ .sp-c-jKPvnt{visibility:visible}.sp-c-jOWzsE{margin:0;outline:none;height:100%}.sp-c-jkvvao .sp-syntax-string{color:var(--sp-syntax-color-string);font-style:var(--sp-syntax-fontStyle-string)}.sp-c-jkvvao .sp-syntax-plain{color:var(--sp-syntax-color-plain);font-style:var(--sp-syntax-fontStyle-plain)}.sp-c-jkvvao .sp-syntax-comment{color:var(--sp-syntax-color-comment);font-style:var(--sp-syntax-fontStyle-comment)}.sp-c-jkvvao .sp-syntax-keyword{color:var(--sp-syntax-color-keyword);font-style:var(--sp-syntax-fontStyle-keyword)}.sp-c-jkvvao .sp-syntax-definition{color:var(--sp-syntax-color-definition);font-style:var(--sp-syntax-fontStyle-definition)}.sp-c-jkvvao .sp-syntax-punctuation{color:var(--sp-syntax-color-punctuation);font-style:var(--sp-syntax-fontStyle-punctuation)}.sp-c-jkvvao .sp-syntax-property{color:var(--sp-syntax-color-property);font-style:var(--sp-syntax-fontStyle-property)}.sp-c-jkvvao .sp-syntax-tag{color:var(--sp-syntax-color-tag);font-style:var(--sp-syntax-fontStyle-tag)}.sp-c-jkvvao .sp-syntax-static{color:var(--sp-syntax-color-static);font-style:var(--sp-syntax-fontStyle-static)}.sp-c-juMdfR{flex:1;display:flex;flex-direction:column;background:white;overflow:auto;position:relative}.sp-c-juMdfR .sp-bridge-frame{border:0;position:absolute;left:var(--sp-space-2);bottom:var(--sp-space-2);z-index:var(--sp-zIndices-top);height:12px;width:30%;mix-blend-mode:multiply;pointer-events:none}.sp-c-fgviib{border:0;outline:0;width:100%;height:100%;min-height:160px;max-height:2000px;flex:1}.sp-c-kwibBT{display:flex;position:absolute;bottom:var(--sp-space-2);right:var(--sp-space-2);z-index:var(--sp-zIndices-overlay);gap:var(--sp-space-2)}.sp-c-dEbKhQ{background-color:var(--sp-colors-surface2);border-radius:99999px;border:1px solid var(--sp-colors-surface3)}.sp-c-dEbKhQ[data-active="true"]{color:var(--sp-colors-surface1);background:var(--sp-colors-accent)}.sp-c-dEbKhQ:hover:not(:disabled,[data-active='true']){background-color:var(--sp-colors-surface3)}.sp-c-bcibQq{position:absolute;bottom:var(--sp-space-2);right:var(--sp-space-2);padding-right:var(--sp-space-3)}}--sxs{--sxs:3 sp-c-PJLV-kCOVwI-status-pass sp-c-PJLV-kEzYsr-status-fail sp-c-PJLV-gHAhSA-status-skip sp-c-PJLV-jgnHyR-status-title sp-c-PJLV-iCgxLS-status-run sp-c-PJLV-bnDZSy-status-pass sp-c-PJLV-eYuGwt-status-fail sp-c-gvjhpQ-xpXQZ-direction-horizontal sp-c-fVPbOs-gMQIch-variant-light}@media{.sp-c-PJLV-kCOVwI-status-pass{color:var(--test-pass)}.sp-c-PJLV-kEzYsr-status-fail{color:var(--test-fail)}.sp-c-PJLV-gHAhSA-status-skip{color:var(--test-skip)}.sp-c-PJLV-jgnHyR-status-title{color:var(--test-title)}.sp-c-PJLV-iCgxLS-status-run{background:var(--test-run);color:var(--sp-colors-surface1)}.sp-c-PJLV-bnDZSy-status-pass{background:var(--test-pass);color:var(--sp-colors-surface1)}.sp-c-PJLV-eYuGwt-status-fail{background:var(--test-fail);color:var(--sp-colors-surface1)}.sp-c-gvjhpQ-xpXQZ-direction-horizontal{top:0;bottom:0;width:10px;cursor:ew-resize}.sp-c-fVPbOs-gMQIch-variant-light{color-scheme:light}}</style><title data-rh="true"> 在 Umi 中使用 - Ant Design</title>
<meta data-rh="true" property="og:description" content="基于 Ant Design 设计体系的 React UI 组件库,用于研发企业级中后台产品。"/><meta data-rh="true" property="og:type" content="website"/><meta data-rh="true" property="og:image" content="https://gw.alipayobjects.com/zos/rmsportal/rlpTLlbMzTNYuZGGCVYM.png"/><meta data-rh="true" property="og:title" content=" 在 Umi 中使用 - Ant Design"/><meta data-rh="true" name="description" content="在真实项目开发中,除了 Ant Design 这样的 UI 库你可能会还会需要构建工具、路由方案、CSS 方案、数据流方案、请求库和请求方案、国际化方案、权限方案、Icons 方案等等,才能完成一个完整的项目。我们基于业务场景,推出了基于 React 的企业级应用框架 Umi推荐你在项目中使用。"/>
<link data-rh="true" sizes="144x144" href="https://gw.alipayobjects.com/zos/antfincdn/UmVnt3t4T0/antd.png"/>
<link rel="stylesheet" href="/style-acss.d1b5f0bb.css"></head><body><noscript><b>Enable JavaScript to run this app.</b></noscript><div id="root"><!--$?--><template id="B:0"></template><div></div><!--/$--></div><script>window.__UMI_LOADER_DATA__ = {}; window.__UMI_METADATA_LOADER_DATA__ = {"headScripts":["\n (function () {\n function isLocalStorageNameSupported() {\n const testKey = 'test';\n const storage = window.localStorage;\n try {\n storage.setItem(testKey, '1');\n storage.removeItem(testKey);\n return true;\n } catch (error) {\n return false;\n }\n }\n // 优先级提高到所有静态资源的前面,语言不对,加载其他静态资源没意义\n const pathname = location.pathname;\n\n function isZhCN(pathname) {\n return /-cn\\/?$/.test(pathname);\n }\n function getLocalizedPathname(path, zhCN) {\n const pathname = path.indexOf('/') === 0 ? path : '/' + path;\n if (!zhCN) {\n // to enUS\n return /\\/?index(-cn)?/.test(pathname) ? '/' : pathname.replace('-cn', '');\n } else if (pathname === '/') {\n return '/index-cn';\n } else if (pathname.indexOf('/') === pathname.length - 1) {\n return pathname.replace(/\\/$/, '-cn/');\n }\n return pathname + '-cn';\n }\n\n // 兼容旧的 URL `?locale=...`\n const queryString = location.search;\n if (queryString) {\n const isZhCNConfig = queryString.indexOf('zh-CN') > -1;\n if (isZhCNConfig && !isZhCN(pathname)) {\n location.pathname = getLocalizedPathname(pathname, isZhCNConfig);\n }\n }\n\n // 首页无视链接里面的语言设置 https://github.com/ant-design/ant-design/issues/4552\n if (isLocalStorageNameSupported() && (pathname === '/' || pathname === '/index-cn')) {\n const lang =\n (window.localStorage && localStorage.getItem('locale')) ||\n ((navigator.language || navigator.browserLanguage).toLowerCase() === 'zh-cn'\n ? 'zh-CN'\n : 'en-US');\n // safari is 'zh-cn', while other browser is 'zh-CN';\n if ((lang === 'zh-CN') !== isZhCN(pathname)) {\n location.pathname = getLocalizedPathname(pathname, lang === 'zh-CN');\n }\n }\n document.documentElement.className += isZhCN(pathname) ? 'zh-cn' : 'en-us';\n })();\n ",{"async":true,"src":"//www.googletagmanager.com/gtag/js?id=UA-72788897-1"},{"content":"window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'UA-72788897-1');"}],"styles":[],"favicons":["https://gw.alipayobjects.com/zos/rmsportal/rlpTLlbMzTNYuZGGCVYM.png"],"links":[{"rel":"prefetch","as":"font","href":"//at.alicdn.com/t/webfont_6e11e43nfj.woff2","type":"font/woff2","crossorigin":"anonymous"},{"rel":"prefetch","as":"font","href":"//at.alicdn.com/t/webfont_6e11e43nfj.woff","type":"font/woff","crossorigin":"anonymous"},{"rel":"prefetch","as":"font","href":"//at.alicdn.com/t/webfont_6e11e43nfj.ttf","type":"font/ttf","crossorigin":"anonymous"},{"rel":"prefetch","as":"font","href":"//at.alicdn.com/t/webfont_exesdog9toj.woff2","type":"font/woff2","crossorigin":"anonymous"},{"rel":"prefetch","as":"font","href":"//at.alicdn.com/t/webfont_exesdog9toj.woff","type":"font/woff","crossorigin":"anonymous"},{"rel":"prefetch","as":"font","href":"//at.alicdn.com/t/webfont_exesdog9toj.ttf","type":"font/ttf","crossorigin":"anonymous"},{"rel":"preload","as":"font","href":"//at.alicdn.com/wf/webfont/exMpJIukiCms/Gsw2PSKrftc1yNWMNlXgw.woff2","type":"font/woff2","crossorigin":"anonymous"},{"rel":"preload","as":"font","href":"//at.alicdn.com/wf/webfont/exMpJIukiCms/vtu73by4O2gEBcvBuLgeu.woff","type":"font/woff2","crossorigin":"anonymous"}],"metas":[{"name":"theme-color","content":"#1677ff"},{"name":"build-time","content":"1749545339772"},{"name":"build-hash","content":"aa393e22b754f0a078576456a6601622508c385f"}],"scripts":[{"async":true,"content":"(function createMirrorModal() {\n const SIGN = Symbol.for('antd.mirror-notify');\n const always = window.localStorage.getItem('DEBUG') === 'antd';\n const officialChinaMirror = 'https://ant-design.antgroup.com';\n\n const enabledCondition = [\n // Check if the browser language is Chinese\n navigator.languages.includes('zh') || navigator.languages.includes('zh-CN'),\n // Check if the URL path ends with -cn\n /-cn\\/?$/.test(window.location.pathname),\n // chinese mirror URL\n !['ant-design.gitee.io', new URL(officialChinaMirror).hostname].includes(\n window.location.hostname,\n ),\n // PR review URL\n !window.location.host.includes('surge'),\n // development mode\n !['127.0.0.1', 'localhost'].includes(window.location.hostname),\n ];\n\n const isEnabled = always || enabledCondition.every(Boolean);\n\n if (!isEnabled) return;\n\n const prefixCls = 'antd-mirror-notify';\n const primaryColor = '#1677ff';\n\n function insertCss() {\n const style = document.createElement('style');\n style.innerHTML = `\n @keyframes slideInRight {\n from {\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n }\n\n .${prefixCls} {\n position: fixed;\n inset-inline-end: 12px;\n inset-block-start: 12px;\n z-index: 9999;\n width: 360px;\n background-color: #fff;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n overflow: hidden;\n animation: slideInRight 0.3s ease-in-out;\n }\n .${prefixCls}-content {\n padding: 16px;\n }\n .${prefixCls}-content a {\n color: ${primaryColor};\n text-decoration: none;\n &:hover {\n text-decoration: underline;\n }\n }\n .${prefixCls}-title {\n font-size: 16px;\n font-weight: bold;\n margin-block-end: 8px;\n }\n .${prefixCls}-message {\n font-size: 14px;\n color: #555;\n line-height: 1.57;\n }\n .${prefixCls}-footer {\n display: none;\n margin-block-start: 16px;\n justify-content: flex-end;\n }\n\n .${prefixCls}-progress {\n position: relative;\n inset-inline-end: 0;\n width: 100%;\n height: 4px;\n background-color: #f0f0f0;\n border-radius: 2px;\n overflow: hidden;\n }\n\n .${prefixCls}-progress::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: var(--progress, 0%);\n background-color: ${primaryColor};\n transition: width 0.05s linear; /* Adjusted for smoother animation matching refreshRate */\n }\n .${prefixCls}-close {\n all: unset;\n position: absolute;\n inset-inline-end: 2px;\n inset-block-start: 2px;\n width: 32px;\n height: 32px;\n font-size: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #999;\n cursor: pointer;\n }\n\n .${prefixCls}-close:hover {\n color: #333;\n }\n\n .${prefixCls}-action {\n all: unset;\n display: inline-block;\n padding: 4px 8px;\n background-color: ${primaryColor};\n color: #fff;\n border-radius: 4px;\n text-align: center;\n cursor: pointer;\n font-size: 14px;\n }\n `;\n\n document.head.append(style);\n }\n\n function createNotification() {\n insertCss();\n\n const notify = document.createElement('div');\n notify.className = `${prefixCls} slideInRight`;\n notify.innerHTML = `\n <div class=\"${prefixCls}-content\">\n <div class=\"${prefixCls}-title\">🇨🇳 访问不畅?试试国内镜像</div>\n <div class=\"${prefixCls}-message\">\n 国内镜像站点可以帮助您更快地访问文档和资源。<br>\n 请尝试访问 <a href=\"${officialChinaMirror}\">国内镜像站点</a>,以获得更好的体验。\n </div>\n <div class=\"${prefixCls}-footer\">\n <button class=\"${prefixCls}-action\">🚀 立即前往</button>\n </div>\n </div>\n <button class=\"${prefixCls}-close\">X</button>\n <div class=\"${prefixCls}-progress\" style=\"--progress: 100%;\"></div>\n `;\n document.body.appendChild(notify);\n\n notify.querySelector(`.${prefixCls}-close`).addEventListener('click', () => {\n removeNotify();\n });\n\n notify.querySelector(`.${prefixCls}-action`).addEventListener('click', () => {\n if (window.gtag) {\n window.gtag('event', '点击', {\n event_category: '前往国内镜像',\n event_label: officialChinaMirror,\n });\n }\n window.location.href = officialChinaMirror;\n removeNotify();\n });\n\n const refreshRate = 50; // ms\n const duration = 10; // s\n const step = 100 / ((duration * 1000) / refreshRate);\n let progressInterval = -1;\n\n function removeNotify() {\n clearInterval(progressInterval);\n notify.remove();\n }\n\n const progressEl = notify.querySelector(`.${prefixCls}-progress`);\n let currentProgressValue = 100;\n\n const progress = {\n get value() {\n return currentProgressValue;\n },\n set value(val) {\n currentProgressValue = Math.max(0, Math.min(100, val));\n progressEl.style.setProperty('--progress', `${currentProgressValue}%`);\n },\n };\n\n function startProgressTimer() {\n if (progressInterval !== -1) {\n clearInterval(progressInterval);\n }\n progressInterval = setInterval(() => {\n if (progress.value <= 0) {\n removeNotify();\n } else {\n progress.value -= step;\n }\n }, refreshRate);\n }\n\n startProgressTimer();\n\n notify.addEventListener('mouseenter', () => {\n clearInterval(progressInterval);\n });\n\n notify.addEventListener('mouseleave', () => {\n startProgressTimer();\n });\n }\n\n // 断定网络不畅阈值(秒)\n const delayDuration = 3;\n\n const reactTimeoutId = setTimeout(() => {\n if (typeof window[SIGN]?.YES === 'undefined') {\n console.error(\n `antd.mirror-notify: 页面加载超过 ${delayDuration} 秒,可能是网络不畅。\\n请尝试访问国内镜像站点。%c${officialChinaMirror}`,\n `color: ${primaryColor}; font-weight: bold;`,\n );\n createNotification();\n }\n }, delayDuration * 1000);\n\n // 交给 React effect 清理\n window[SIGN] = function stopMirrorNotify() {\n window[SIGN].YES = Date.now();\n clearTimeout(reactTimeoutId);\n };\n})();\n"},{"async":true,"content":"/* eslint-disable */\n// https://clarity.microsoft.com\n(function (c, l, a, r, i, t, y) {\n c[a] =\n c[a] ||\n function () {\n (c[a].q = c[a].q || []).push(arguments);\n };\n t = l.createElement(r);\n t.async = 1;\n t.src = 'https://www.clarity.ms/tag/' + i;\n y = l.getElementsByTagName(r)[0];\n y.parentNode.insertBefore(t, y);\n})(window, document, 'clarity', 'script', 'lyia7jfwui');\n"}]}; window.__UMI_BUILD_ClIENT_CSS__ = '/umi.fa429c5c.css'</script><script async="">(function createMirrorModal() {
const SIGN = Symbol.for('antd.mirror-notify');
const always = window.localStorage.getItem('DEBUG') === 'antd';
const officialChinaMirror = 'https://ant-design.antgroup.com';
const enabledCondition = [
// Check if the browser language is Chinese
navigator.languages.includes('zh') || navigator.languages.includes('zh-CN'),
// Check if the URL path ends with -cn
/-cn\/?$/.test(window.location.pathname),
// chinese mirror URL
!['ant-design.gitee.io', new URL(officialChinaMirror).hostname].includes(
window.location.hostname,
),
// PR review URL
!window.location.host.includes('surge'),
// development mode
!['127.0.0.1', 'localhost'].includes(window.location.hostname),
];
const isEnabled = always || enabledCondition.every(Boolean);
if (!isEnabled) return;
const prefixCls = 'antd-mirror-notify';
const primaryColor = '#1677ff';
function insertCss() {
const style = document.createElement('style');
style.innerHTML = `
@keyframes slideInRight {
from {
transform: translate3d(100%, 0, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
.${prefixCls} {
position: fixed;
inset-inline-end: 12px;
inset-block-start: 12px;
z-index: 9999;
width: 360px;
background-color: #fff;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
border-radius: 4px;
overflow: hidden;
animation: slideInRight 0.3s ease-in-out;
}
.${prefixCls}-content {
padding: 16px;
}
.${prefixCls}-content a {
color: ${primaryColor};
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
.${prefixCls}-title {
font-size: 16px;
font-weight: bold;
margin-block-end: 8px;
}
.${prefixCls}-message {
font-size: 14px;
color: #555;
line-height: 1.57;
}
.${prefixCls}-footer {
display: none;
margin-block-start: 16px;
justify-content: flex-end;
}
.${prefixCls}-progress {
position: relative;
inset-inline-end: 0;
width: 100%;
height: 4px;
background-color: #f0f0f0;
border-radius: 2px;
overflow: hidden;
}
.${prefixCls}-progress::after {
content: '';
position: absolute;
top: 0;
left: 0;
height: 100%;
width: var(--progress, 0%);
background-color: ${primaryColor};
transition: width 0.05s linear; /* Adjusted for smoother animation matching refreshRate */
}
.${prefixCls}-close {
all: unset;
position: absolute;
inset-inline-end: 2px;
inset-block-start: 2px;
width: 32px;
height: 32px;
font-size: 16px;
display: flex;
align-items: center;
justify-content: center;
color: #999;
cursor: pointer;
}
.${prefixCls}-close:hover {
color: #333;
}
.${prefixCls}-action {
all: unset;
display: inline-block;
padding: 4px 8px;
background-color: ${primaryColor};
color: #fff;
border-radius: 4px;
text-align: center;
cursor: pointer;
font-size: 14px;
}
`;
document.head.append(style);
}
function createNotification() {
insertCss();
const notify = document.createElement('div');
notify.className = `${prefixCls} slideInRight`;
notify.innerHTML = `
<div class="${prefixCls}-content">
<div class="${prefixCls}-title">🇨🇳 访问不畅?试试国内镜像</div>
<div class="${prefixCls}-message">
国内镜像站点可以帮助您更快地访问文档和资源。<br>
请尝试访问 <a href="${officialChinaMirror}">国内镜像站点</a>,以获得更好的体验。
</div>
<div class="${prefixCls}-footer">
<button class="${prefixCls}-action">🚀 立即前往</button>
</div>
</div>
<button class="${prefixCls}-close">X</button>
<div class="${prefixCls}-progress" style="--progress: 100%;"></div>
`;
document.body.appendChild(notify);
notify.querySelector(`.${prefixCls}-close`).addEventListener('click', () => {
removeNotify();
});
notify.querySelector(`.${prefixCls}-action`).addEventListener('click', () => {
if (window.gtag) {
window.gtag('event', '点击', {
event_category: '前往国内镜像',
event_label: officialChinaMirror,
});
}
window.location.href = officialChinaMirror;
removeNotify();
});
const refreshRate = 50; // ms
const duration = 10; // s
const step = 100 / ((duration * 1000) / refreshRate);
let progressInterval = -1;
function removeNotify() {
clearInterval(progressInterval);
notify.remove();
}
const progressEl = notify.querySelector(`.${prefixCls}-progress`);
let currentProgressValue = 100;
const progress = {
get value() {
return currentProgressValue;
},
set value(val) {
currentProgressValue = Math.max(0, Math.min(100, val));
progressEl.style.setProperty('--progress', `${currentProgressValue}%`);
},
};
function startProgressTimer() {
if (progressInterval !== -1) {
clearInterval(progressInterval);
}
progressInterval = setInterval(() => {
if (progress.value <= 0) {
removeNotify();
} else {
progress.value -= step;
}
}, refreshRate);
}
startProgressTimer();
notify.addEventListener('mouseenter', () => {
clearInterval(progressInterval);
});
notify.addEventListener('mouseleave', () => {
startProgressTimer();
});
}
// 断定网络不畅阈值(秒)
const delayDuration = 3;
const reactTimeoutId = setTimeout(() => {
if (typeof window[SIGN]?.YES === 'undefined') {
console.error(
`antd.mirror-notify: 页面加载超过 ${delayDuration} 秒,可能是网络不畅。\n请尝试访问国内镜像站点。%c${officialChinaMirror}`,
`color: ${primaryColor}; font-weight: bold;`,
);
createNotification();
}
}, delayDuration * 1000);
// 交给 React effect 清理
window[SIGN] = function stopMirrorNotify() {
window[SIGN].YES = Date.now();
clearTimeout(reactTimeoutId);
};
})();
</script><script async="">/* eslint-disable */
// https://clarity.microsoft.com
(function (c, l, a, r, i, t, y) {
c[a] =
c[a] ||
function () {
(c[a].q = c[a].q || []).push(arguments);
};
t = l.createElement(r);
t.async = 1;
t.src = 'https://www.clarity.ms/tag/' + i;
y = l.getElementsByTagName(r)[0];
y.parentNode.insertBefore(t, y);
})(window, document, 'clarity', 'script', 'lyia7jfwui');
</script><script src="/umi.24c0192c.js" async=""></script><div hidden id="S:0"><!--$?--><template id="B:1"></template><div></div><!--/$--></div><script>$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data="$!",a.setAttribute("data-dgst",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if("/$"===d)if(0===f)break;else f--;else"$"!==d&&"$?"!==d&&"$!"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data="$"}b._reactRetry&&b._reactRetry()}};$RC("B:0","S:0")</script><div hidden id="S:1"><div class="ant-app css-var-«R2a»"><!--$?--><template id="B:2"></template><div></div><!--/$--></div></div><script>$RC("B:1","S:1")</script><link rel="preload" as="image" href="https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg"/><link rel="preload" as="image" href="https://gw.alipayobjects.com/zos/rmsportal/XuVpGqBFxXplzvLjJBZB.svg"/><link rel="preload" as="image" href="https://gw.alipayobjects.com/zos/rmsportal/mZBWtboYbnMkTBaRIuWQ.png"/><link rel="preload" as="image" href="https://gw.alipayobjects.com/zos/rmsportal/nBVXkrFdWHxbZlmMbsaH.svg"/><link rel="preload" as="image" href="https://gw.alipayobjects.com/zos/antfincdn/nc7Fc0XBg5/8a6844f5-a6ed-4630-9177-4fa5d0b7dd47.png"/><link rel="preload" as="image" href="https://www.eggjs.org/logo.svg"/><link rel="preload" as="image" href="https://gw.alipayobjects.com/zos/rmsportal/DMDOlAUhmktLyEODCMBR.ico"/><link rel="preload" as="image" href="https://mdn.alipayobjects.com/huamei_j9rjmc/afts/img/A*3ittT5OEo2gAAAAAAAAAAAAADvGmAQ/original"/><div hidden id="S:2"><style data-emotion="css-global 1cvz9qn">@font-face{font-weight:normal;font-family:AlibabaPuHuiTi;src:url('//at.alicdn.com/t/webfont_6e11e43nfj.woff2') format('woff2'),url('//at.alicdn.com/t/webfont_6e11e43nfj.woff') format('woff'),url('//at.alicdn.com/t/webfont_6e11e43nfj.ttf') format('truetype');font-display:swap;}@font-face{font-weight:bold;font-family:AlibabaPuHuiTi;src:url('//at.alicdn.com/t/webfont_exesdog9toj.woff2') format('woff2'),url('//at.alicdn.com/t/webfont_exesdog9toj.woff') format('woff'),url('//at.alicdn.com/t/webfont_exesdog9toj.ttf') format('truetype');font-display:swap;}@font-face{font-weight:900;font-family:'AliPuHui';src:url('//at.alicdn.com/wf/webfont/exMpJIukiCms/Gsw2PSKrftc1yNWMNlXgw.woff2') format('woff2'),url('//at.alicdn.com/wf/webfont/exMpJIukiCms/vtu73by4O2gEBcvBuLgeu.woff') format('woff');font-display:swap;}html{direction:initial;}@supports (overflow-x: clip){html{overflow-x:clip;}}html.rtl{direction:rtl;}body{color:rgba(0,0,0,0.88);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji';line-height:1.5714285714285714;background:#ffffff;-webkit-transition:background-color 1s cubic-bezier(0.075, 0.82, 0.165, 1);transition:background-color 1s cubic-bezier(0.075, 0.82, 0.165, 1);}@supports (overflow-x: clip){body{overflow-x:clip;}}@supports not (overflow-x: clip){body{overflow-x:hidden;}}</style><style data-emotion="css-global yv18lh">@layer global{body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{margin:0;padding:0;}ul,ol{list-style:none;}img{vertical-align:middle;border-style:none;}[id]{scroll-margin-top:80px;}[data-prefers-color='dark']{-webkit-print-color-scheme:dark;color-scheme:dark;}[data-prefers-color='light']{-webkit-print-color-scheme:light;color-scheme:light;}}</style><style data-emotion="css-global ys7f0o">.markdown{color:rgba(0,0,0,0.88);font-size:14px;line-height:2;}.highlight{line-height:1.5;}.markdown img{max-width:calc(100% - 32px);max-height:100%;}.markdown>a>img,.markdown>img{display:block;margin:0 auto;}.markdown p>img,.markdown li>img{margin:34px auto;box-shadow:0 8px 20px rgba(143, 168, 191, 0.35);display:block;}.markdown p>img.markdown-inline-image{margin:0;box-shadow:none;}.markdown h1{margin-top:8px;margin-bottom:20px;color:rgba(0,0,0,0.88);font-weight:500;font-size:30px;font-family:Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji',sans-serif;line-height:38px;}.markdown h1 .subtitle{-webkit-margin-start:12px;margin-inline-start:12px;}.markdown h2{font-size:24px;line-height:32px;}.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{clear:both;margin:1.6em 0 0.6em;color:rgba(0,0,0,0.88);font-weight:500;font-family:Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji',sans-serif;}.markdown h3{font-size:18px;}.markdown h4{font-size:16px;}.markdown h5{font-size:14px;}.markdown h6{font-size:12px;}.markdown hr{clear:both;height:1px;margin:24px 0;background:rgba(5,5,5,0.06);border:0;}.markdown p,.markdown pre{margin:1em 0;}.ant-row-rtl .markdown p,.ant-row-rtl .markdown pre{direction:rtl;text-align:right;}.markdown ul>li,.markdown ol>li{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-margin-start:20px;margin-inline-start:20px;}.markdown ul>li >p,.markdown ol>li >p{margin:0.2em 0;}.markdown ul>li:empty,.markdown ol>li:empty{display:none;}.markdown ul>li{list-style-type:circle;}.markdown ol>li{list-style-type:decimal;}.markdown code{margin:0 1px;padding:0.2em 0.4em;font-size:0.9em;background:rgba(0,0,0,0.04);border:1px solid rgba(5,5,5,0.06);border-radius:4px;}.markdown pre{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,Courier,monospace;background:rgba(0,0,0,0.04);border-radius:6px;}.markdown pre code{margin:0;padding:0;overflow:auto;color:rgba(0,0,0,0.88);font-size:13px;direction:ltr;text-align:left;background-color:#f5f5f5;border:none;}.markdown strong,.markdown b{font-weight:500;}.markdown .dumi-default-source-code{margin:1em 0;background-color:rgba(0,0,0,0.04);border-radius:6px;}.markdown .dumi-default-source-code >pre.prism-code{scrollbar-width:thin;scrollbar-gutter:stable;padding:12px 20px;font-size:14px;line-height:2;}.pic-plus>*{display:inline-block!important;vertical-align:middle;}.pic-plus span{margin:0 20px;color:#aaa;font-size:30px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.markdown table td>a:not(:last-child){-webkit-margin-end:0!important;margin-inline-end:0!important;}.markdown table td>a:not(:last-child)::after{position:relative!important;}.markdown blockquote{margin:1em 0;-webkit-padding-start:0.8em;padding-inline-start:0.8em;color:rgba(0,0,0,0.65);font-size:90%;border-left:4px solid rgba(5,5,5,0.06);}.rtl .markdown blockquote{-webkit-padding-end:0.8em;padding-inline-end:0.8em;-webkit-padding-start:0;padding-inline-start:0;border-right:4px solid rgba(5,5,5,0.06);border-left:none;}.markdown blockquote p{margin:0;}.markdown .anchor{-webkit-margin-start:8px;margin-inline-start:8px;opacity:0;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;}.rtl .markdown .anchor{-webkit-margin-end:8px;margin-inline-end:8px;-webkit-margin-start:0;margin-inline-start:0;}.markdown .waiting{color:#ccc;cursor:not-allowed;}.markdown a.edit-button{display:inline-block;-webkit-margin-start:8px;margin-inline-start:8px;-webkit-text-decoration:none;text-decoration:none;}.rtl .markdown a.edit-button{-webkit-margin-end:8px;margin-inline-end:8px;-webkit-margin-start:0;margin-inline-start:0;-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg);}.markdown a.edit-button .anticon{display:block;color:rgba(0,0,0,0.65);font-size:16px;-webkit-transition:all 0.3s;transition:all 0.3s;}.markdown a.edit-button .anticon:hover{color:rgba(0,0,0,0.88);}.markdown h1:hover .anchor,.markdown h2:hover .anchor,.markdown h3:hover .anchor,.markdown h4:hover .anchor,.markdown h5:hover .anchor,.markdown h6:hover .anchor{display:inline-block;opacity:1;}.markdown>br,.markdown>p>br{clear:both;}.markdown .dumi-default-table-content{scrollbar-width:thin;scrollbar-gutter:stable;}.markdown .dumi-default-table table{margin:0;overflow-x:auto;overflow-y:hidden;direction:ltr;empty-cells:show;border:1px solid rgba(5,5,5,0.06);border-collapse:collapse;border-spacing:0;}.markdown .dumi-default-table table th,.markdown .dumi-default-table table td{padding:12px 24px;text-align:left;border:1px solid rgba(5,5,5,0.06);}.markdown .dumi-default-table table th:first-child,.markdown .dumi-default-table table td:first-child{border-left:1px solid rgba(5,5,5,0.06);}.markdown .dumi-default-table table th:last-child,.markdown .dumi-default-table table td:last-child{border-right:1px solid rgba(5,5,5,0.06);}.markdown .dumi-default-table table th img,.markdown .dumi-default-table table td img{max-width:unset;}.markdown .dumi-default-table table th{color:#5c6b77;font-weight:500;white-space:nowrap;background:rgba(0, 0, 0, 0.02);border-width:1px 1px 2px;}.markdown .dumi-default-table table tbody tr{-webkit-transition:all 0.3s;transition:all 0.3s;}.markdown .dumi-default-table table tbody tr:hover{background:rgba(60, 90, 100, 0.04);}.markdown .dumi-default-table table.component-api-table{margin:0;overflow-x:auto;overflow-y:hidden;font-size:13px;font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,Courier,monospace;line-height:1.5714285714285714;border:1px solid rgba(5,5,5,0.06);border-width:0 1px;}.markdown .dumi-default-table table.component-api-table th{border-width:1px 0 2px;}.markdown .dumi-default-table table.component-api-table td{border-width:1px 0;}.markdown .dumi-default-table table.component-api-table td:first-child{width:18%;min-width:58px;color:rgba(0,0,0,0.88);font-weight:600;white-space:nowrap;}.markdown .dumi-default-table table.component-api-table td:nth-child(2){min-width:160px;}.markdown .dumi-default-table table.component-api-table td:nth-child(3){width:22%;color:#c41d7f;font-size:13px;}.markdown .dumi-default-table table.component-api-table td:nth-child(4){width:15%;font-size:13px;}.markdown .dumi-default-table table.component-api-table td:nth-child(5){width:8%;font-size:13px;}.markdown .dumi-default-table table.component-api-table td:nth-last-child(3):first-child{width:38%;}.markdown .dumi-default-table table.component-api-table td:nth-last-child(3):first-child~td:nth-last-child(2){width:70%;}.markdown .dumi-default-table tr:has(td:first-child > del){color:#faad14!important;background-color:#fffbe6!important;display:-webkit-box;display:-webkit-var(--antd-site-api-deprecated-display, none);display:-ms-var(--antd-site-api-deprecated-display, none)box;display:var(--antd-site-api-deprecated-display, none);}.markdown .dumi-default-table tr:has(td:first-child > del) del{color:#faad14;}.markdown .dumi-default-table tr:has(td:first-child > del):hover del{-webkit-text-decoration:none;text-decoration:none;}.grid-demo .ant-row>div,[id^='grid-demo-'] .ant-row>div,.grid-demo .code-box-demo .ant-row>div,[id^='grid-demo-'] .code-box-demo .ant-row>div{min-height:30px;margin-top:8px;margin-bottom:8px;color:#fff;text-align:center;border-radius:0;}.grid-demo .code-box-demo .ant-row>div:not(.gutter-row),[id^='grid-demo-'] .code-box-demo .ant-row>div:not(.gutter-row){padding:16px 0;background:#1677ff;}.grid-demo .code-box-demo .ant-row>div:not(.gutter-row):nth-child(2n + 1),[id^='grid-demo-'] .code-box-demo .ant-row>div:not(.gutter-row):nth-child(2n + 1){background:#1677ffbf;}.grid-demo .ant-row .demo-col,[id^='grid-demo-'] .ant-row .demo-col,.grid-demo .code-box-demo .ant-row .demo-col,[id^='grid-demo-'] .code-box-demo .ant-row .demo-col{margin-top:0;margin-bottom:0;padding:30px 0;color:#fff;font-size:18px;text-align:center;border:none;}.grid-demo .ant-row .demo-col-1,[id^='grid-demo-'] .ant-row .demo-col-1{background:#1677ffbf;}.grid-demo .ant-row .demo-col-2,[id^='grid-demo-'] .ant-row .demo-col-2,.grid-demo .code-box-demo .ant-row .demo-col-2,[id^='grid-demo-'] .code-box-demo .ant-row .demo-col-2{background:#1677ffbf;}.grid-demo .ant-row .demo-col-3,[id^='grid-demo-'] .ant-row .demo-col-3,.grid-demo .code-box-demo .ant-row .demo-col-3,[id^='grid-demo-'] .code-box-demo .ant-row .demo-col-3{color:#999;background:rgba(255, 255, 255, 0.2);}.grid-demo .ant-row .demo-col-4,[id^='grid-demo-'] .ant-row .demo-col-4,.grid-demo .code-box-demo .ant-row .demo-col-4,[id^='grid-demo-'] .code-box-demo .ant-row .demo-col-4{background:#1677ff99;}.grid-demo .ant-row .demo-col-5,[id^='grid-demo-'] .ant-row .demo-col-5,.grid-demo .code-box-demo .ant-row .demo-col-5,[id^='grid-demo-'] .code-box-demo .ant-row .demo-col-5{color:#999;background:rgba(255, 255, 255, 0.2);}.grid-demo .code-box-demo .height-100,[id^='grid-demo-'] .code-box-demo .height-100{height:100px;line-height:100px;}.grid-demo .code-box-demo .height-50,[id^='grid-demo-'] .code-box-demo .height-50{height:50px;line-height:50px;}.grid-demo .code-box-demo .height-120,[id^='grid-demo-'] .code-box-demo .height-120{height:120px;line-height:120px;}.grid-demo .code-box-demo .height-80,[id^='grid-demo-'] .code-box-demo .height-80{height:80px;line-height:80px;}[id='grid-demo-playground'] >.code-box-demo .ant-row>div,[id='grid-demo-gutter'] >.code-box-demo .ant-row>div{margin-top:0;margin-bottom:0;}</style><style data-emotion="css-global zy6f9q">pre code{display:block;padding:16px 32px;color:rgba(0,0,0,0.88);font-size:14px;font-family:'Lucida Console',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;line-height:2;white-space:pre;background:white;border:1px solid #e9e9e9;border-radius:6px;}code[class*='language-'],pre[class*='language-']{color:rgba(0,0,0,0.88);font-family:'Lucida Console',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;line-height:1.5;direction:ltr;white-space:pre;text-align:left;word-wrap:normal;word-break:normal;word-spacing:normal;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;background:none;}code[class*='css']{direction:ltr;}pre[class*='language-'] ::selection,code[class*='language-'] ::selection{text-shadow:none;background:#b3d4fc;}@media print{code[class*='language-'],pre[class*='language-']{text-shadow:none;}}pre[class*='language-']{margin:16px 0;padding:12px 20px;overflow:auto;}:not(pre)>code[class*='language-'],pre[class*='language-']{background:#f5f5f5;}:not(pre)>code[class*='language-']{padding:0.1em;white-space:normal;border-radius:0.3em;}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray;}.token.punctuation{color:#999;}.namespace{opacity:0.7;}.markdown .token.property,.markdown .token.tag,.markdown .token.boolean,.markdown .token.number,.markdown .token.constant,.markdown .token.symbol,.markdown .token.deleted{color:#f81d22;}.markdown .token.selector,.markdown .token.attr-name,.markdown .token.string,.markdown .token.char,.markdown .token.builtin,.markdown .token.inserted{color:#0b8235;}.markdown .token.operator,.markdown .token.entity,.markdown .token.url,.markdown .language-css .token.string,.markdown .style .token.string{color:#0b8235;}.markdown .token.atrule,.markdown .token.attr-value,.markdown .token.keyword{color:#008dff;}.markdown .token.function{color:#f81d22;}.markdown .token.regex,.markdown .token.important,.markdown .token.variable{color:#e90;}.markdown .token.important,.markdown .token.bold{font-weight:bold;}.markdown .token.italic{font-style:italic;}.markdown .token.entity{cursor:help;}</style><style data-emotion="css-global hcuf5s">.code-boxes-col-1-1{width:100%;}.code-boxes-col-2-1{display:inline-block;vertical-align:top;}.code-box{position:relative;display:inline-block;width:calc(100% - 2px);margin:0 0 16px;background-color:#ffffff;border:1px solid rgba(5,5,5,0.06);border-radius:8px;-webkit-transition:all 0.2s;transition:all 0.2s;}.code-box.code-box-simplify{border-radius:0;margin-bottom:0;}.code-box.code-box-simplify .code-box-demo{padding:0;border-bottom:0;}.code-box .code-box-title,.code-box .code-box-title a{color:rgba(0,0,0,0.88)!important;background:#ffffff;}.code-box .code-box-demo{background-color:#ffffff;border-radius:8px 8px 0 0;}.code-box .code-box-demo >.demo{overflow:auto;}.code-box .markdown pre{margin:0.5em 0;padding:6px 12px;}.code-box .markdown pre code{margin:0;background:#f5f5f5;}.code-box:target{border:1px solid #1677ff;}.code-box-title{position:absolute;top:-14px;padding:1px 8px;color:#777;background:#ffffff;border-radius:6px 6px 0 0;-webkit-transition:background-color 0.4s;transition:background-color 0.4s;-webkit-margin-start:16px;margin-inline-start:16px;}.code-box-title a,.code-box-title a:hover{color:rgba(0,0,0,0.88);font-weight:500;font-size:14px;}.code-box-description{padding:18px 24px 12px;}.code-box a.edit-button{position:absolute;top:7px;inset-inline-end:-16px;font-size:12px;-webkit-text-decoration:none;text-decoration:none;background:inherit;-webkit-transform:scale(0.9);-moz-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9);-webkit-padding-end:4px;padding-inline-end:4px;}.code-box a.edit-button .anticon{color:rgba(0,0,0,0.65);-webkit-transition:all 0.3s;transition:all 0.3s;}.code-box a.edit-button .anticon:hover{color:rgba(0,0,0,0.88);}.ant-row.ant-row-rtl .code-box a.edit-button{inset-inline-end:auto;inset-inline-start:-22px;}.code-box-demo{padding:42px 24px 50px;color:rgba(0,0,0,0.88);border-bottom:1px solid rgba(5,5,5,0.06);}.code-box iframe{width:100%;border:0;}.code-box-meta.markdown{position:relative;width:100%;font-size:14px;border-radius:0 0 6px 6px;-webkit-transition:background-color 0.4s;transition:background-color 0.4s;}.code-box-meta blockquote{line-height:1.5;}.code-box-meta h4,section.code-box-meta p{margin:0;}.code-box-meta >p{width:100%;margin:0.5em 0;font-size:12px;word-break:break-word;-webkit-padding-end:25px;padding-inline-end:25px;}.code-box.expand .code-box-meta{border-bottom:1px dashed rgba(5,5,5,0.06);border-radius:0;}.code-box .code-expand-icon{position:relative;width:16px;height:16px;cursor:pointer;}.code-box .code-expand-icon-show,.code-box .code-expand-icon-hide{position:absolute;top:0;inset-inline-start:0;width:100%;max-width:100%;margin:0;box-shadow:none;-webkit-transition:all 0.4s;transition:all 0.4s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.ant-row-rtl .code-box .code-expand-icon-show,.ant-row-rtl .code-box .code-expand-icon-hide{inset-inline-end:0;inset-inline-start:auto;}.code-box .code-expand-icon-show{opacity:0.55;pointer-events:auto;}.code-box .code-expand-icon-show:hover{opacity:1;}.code-box .code-expand-icon.ant-tooltip-open .code-expand-icon-show{opacity:1;}.code-box .code-expand-icon-hide{opacity:0;pointer-events:none;}.code-box .highlight-wrapper{display:none;border-radius:0 0 6px 6px;}.code-box .highlight-wrapper-expand{display:block;}.code-box .highlight{position:relative;}.code-box .highlight pre{margin:0;padding:0;background:#ffffff;}.code-box .highlight:not(:first-child){border-top:1px dashed rgba(5,5,5,0.06);}.code-box-actions{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:12px 0;border-top:1px dashed rgba(5,5,5,0.06);opacity:0.7;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;}.code-box-actions:hover{opacity:1;}.code-box-actions .code-box-code-action{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:16px;height:16px;color:rgba(0,0,0,0.65);cursor:pointer;-webkit-transition:all 0.24s;transition:all 0.24s;}.code-box-actions .code-box-code-action:hover{color:rgba(0,0,0,0.88);}.code-box-actions .code-box-code-action .anticon{display:block;}.code-box-code-copy{width:14px;height:14px;font-size:14px;text-align:center;background:#ffffff;cursor:pointer;-webkit-transition:-webkit-transform 0.24s;transition:transform 0.24s;}.code-box-code-copy.anticon-check{color:#52c41a!important;font-weight:bold;}.code-box-codepen{width:14px;height:14px;overflow:hidden;border:0;cursor:pointer;}.code-box-codeblock{width:16px;height:16px;overflow:hidden;border:0;cursor:pointer;max-width:100%!important;}.code-box-codesandbox{width:16px;height:16px;overflow:hidden;border:0;cursor:pointer;}.code-box-codesandbox:hover{opacity:1;}.highlight-wrapper:hover .code-box-code-copy,.highlight-wrapper:hover .code-box-codepen,.highlight-wrapper:hover .code-box-codesandbox,.highlight-wrapper:hover .code-box-riddle{opacity:1;}.code-box pre{width:auto;margin:0;}.code-box pre code{background:#ffffff;border:none;box-shadow:unset;padding:12px 16px;font-size:14px;}.code-box-debug{border-color:#d3adf7;}.code-box-debug .code-box-title a{color:#722ed1;}.demo-wrapper{position:relative;}.all-code-box-controls{position:absolute;top:-32px;inset-inline-end:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-column-gap:8px;column-gap:8px;}.ant-btn.icon-enabled{background-color:rgba(0,0,0,0.06);opacity:1;}.ant-btn.icon-enabled .anticon{color:#000;font-weight:bold;}.ant-row-rtl #tooltip-demo-placement .code-box-demo,.ant-row-rtl #popover-demo-placement .code-box-demo,.ant-row-rtl #popconfirm-demo-placement .code-box-demo{direction:ltr;}</style><style data-emotion="css-global 1virivh">.nav-phone-icon{position:absolute;bottom:17px;inset-inline-end:30px;z-index:1;display:none;width:16px;height:22px;cursor:pointer;}@media only screen and (max-width: 992px){.code-boxes-col-2-1,.code-boxes-col-1-1{float:none;width:100%;max-width:unset;}}@media only screen and (max-width: 767.99px){.preview-image-boxes{float:none;width:100%;margin:0!important;}.preview-image-box{width:100%;margin:10px 0;padding:0;}.image-wrapper{display:none;}div.version{display:block;margin:29px auto 16px;}.toc{display:none;}.nav-phone-icon{display:block;}.main{height:calc(100% - 86px);}.aside-container{float:none;width:auto;padding-bottom:30px;border-right:0;}.ant-row-rtl{-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-end:16px;padding-inline-end:16px;-webkit-padding-start:16px;padding-inline-start:16px;}.ant-row-rtl >.markdown>*{width:100%!important;}.main-wrapper{width:100%;margin:0;border-radius:0;}.prev-next-nav{width:calc(100% - 32px);-webkit-margin-start:16px;margin-inline-start:16px;}.ant-row-rtl .prev-next-nav{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:64px;margin-inline-start:64px;}.drawer .ant-menu-inline .ant-menu-item::after,.drawer .ant-menu-vertical .ant-menu-item::after{inset-inline-end:auto;inset-inline-start:0;}.home-page-wrapper .page h2{margin:80px auto 64px;}.home-page-wrapper .parallax-bg{display:none;}.banner{display:block;height:632px;}.banner-bg-wrapper{display:none;}.banner .img-wrapper,.banner .text-wrapper{display:inline-block;width:100%;min-width:unset;max-width:unset;margin:auto;text-align:center;}.banner .img-wrapper{position:initial;margin-top:20px;text-align:center;}.banner .img-wrapper svg{width:100%;max-width:260px;height:auto;margin:0 auto;}.banner .text-wrapper{min-height:200px;margin-top:32px;padding:0;}.banner .text-wrapper h1{display:none;}.banner .text-wrapper p{color:#314659;font-size:14px;line-height:28px;}.banner .text-wrapper .banner-btns{display:block;min-width:100%;white-space:nowrap;text-align:center;}.banner .text-wrapper .banner-btns .banner-btn{padding:0 20px;font-size:14px;}.banner .text-wrapper .banner-promote{min-width:100%;margin-top:32px;}.banner .text-wrapper .banner-promote .ant-divider{display:none;}.banner .text-wrapper .banner-promote a{font-size:14px;white-space:nowrap;}.banner .text-wrapper .banner-promote a img{width:20px;}.page1{min-height:1300px;}.page1 .ant-row{margin:24px auto 64px;}.page1 .ant-row >div{margin-bottom:48px;}.page2{min-height:840px;background:#ffffff;}.page2-content{box-shadow:none;}.page2-components{display:none;}.page2-product{min-height:auto;padding:0 16px;}.page2-product .product-block{margin-bottom:34px;padding-bottom:35px;border-bottom:1px solid rgba(5,5,5,0.06);}.page2-product .product-block:last-child{margin-bottom:32px;border-bottom:none;}.page2-product .product-block:last-child .block-text-wrapper{height:auto;}.page2-product .product-block .block-image-wrapper{height:88px;}.page2-product .product-block .block-image-wrapper img{height:100%;}.page2-product .product-block .block-text-wrapper{padding-bottom:0;border-bottom:none;}.page2-product .product-block .block-text-wrapper h4{margin-bottom:4px;font-size:18px;line-height:24px;}.page2-product .product-block .block-text-wrapper p{margin-bottom:8px;font-size:12px;line-height:20px;}.page2-product .product-block .block-text-wrapper a{line-height:20px;}.page2-product .product-block .block-text-wrapper .components-button-wrapper{margin-top:16px;font-size:12px;}.page2-product .product-block .block-text-wrapper .components-button-wrapper a{display:block;}.page2-product .product-block .block-text-wrapper a.more-mobile-react,.page2-product .product-block .block-text-wrapper a.more-mobile-angular{margin-top:0;color:#1677ff;}.page2-product .product-block .block-text-wrapper a.more-mobile-react:hover,.page2-product .product-block .block-text-wrapper a.more-mobile-angular:hover{color:#40a9ff;}.page3{min-height:688px;background-image:url('https://gw.alipayobjects.com/zos/rmsportal/qICoJIqqQRMeRGhPHBBS.svg');background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;}.page3 .ant-row{margin:0 8px;}.page3 .page3-block{margin-bottom:32px;padding:24px;background:#ffffff;border-radius:4px;box-shadow:0 8px 16px rgba(174, 185, 193, 0.3);}.page3 .page3-block:nth-child(2) .page3-img-wrapper img{display:block;width:70%;margin:auto;}.page3 .page3-block p{font-size:12px;}.page3 .page3-block .page3-img-wrapper{width:20%;}.page3 .page3-block .page3-img-wrapper img{width:100%;}.page3 .page3-block .page3-text-wrapper{width:80%;max-width:initial;margin:0;-webkit-padding-start:16px;padding-inline-start:16px;}}</style><style data-emotion="css-global dc4hxp">#nprogress .bar{background:#1677ff;}#nprogress .peg{box-shadow:0 0 10px #1677ff,0 0 5px #1677ff;}#nprogress .spinner-icon{border-top-color:#1677ff;border-left-color:#1677ff;}</style><style data-emotion="css-global 1i32xuc">.preview-image-boxes{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;float:right;clear:both;width:496px;margin:0 0 70px 64px;}.preview-image-boxes-with-carousel{width:420px;}.preview-image-boxes-with-carousel .preview-image-box img{padding:0;}.ant-row-rtl .preview-image-boxes{float:left;margin:0 64px 70px 0;}.preview-image-boxes+.preview-image-boxes{margin-top:-35px;}.preview-image-box{float:left;width:100%;}.preview-image-box+.preview-image-box{-webkit-margin-start:24px;margin-inline-start:24px;}.ant-row-rtl .preview-image-box+.preview-image-box{-webkit-margin-end:24px;margin-inline-end:24px;-webkit-margin-start:0;margin-inline-start:0;}.preview-image-wrapper{position:relative;display:inline-block;width:100%;padding:16px;text-align:center;background:#f2f4f5;box-sizing:border-box;}.preview-image-wrapper.video{display:block;padding:0;background:0;}.preview-image-wrapper video{display:block;width:100%;}.preview-image-wrapper video +svg{position:absolute;top:0;inset-inline-start:0;}.preview-image-wrapper.good::after{position:absolute;bottom:0;inset-inline-start:0;display:block;width:100%;height:3px;background:#1677ff;content:'';}.preview-image-wrapper.bad::after{position:absolute;bottom:0;inset-inline-start:0;display:block;width:100%;height:3px;background:#ff4d4f;content:'';}.preview-image-title{margin-top:20px;color:rgba(0,0,0,0.88);font-size:12px;}.preview-image-description{margin-top:2px;color:rgba(0,0,0,0.65);font-size:12px;line-height:1.5;}.preview-image-description hr{margin:2px 0;background:none;border:0;}.preview-image-box img{box-sizing:border-box;max-width:100%;padding:12px;background:#ffffff;border-radius:6px;cursor:pointer;-webkit-transition:all 0.3s;transition:all 0.3s;}.preview-image-box img.no-padding{padding:0;background:none;}.preview-image-boxes.preview-image-boxes-with-carousel img{padding:0;box-shadow:0 1px 0 0 #ddd,0 3px 0 0 #ffffff,0 4px 0 0 #ddd,0 6px 0 0 #ffffff,0 7px 0 0 #ddd;}.preview-image-box img:hover{box-shadow:1px 1px 6px rgba(0, 0, 0, 0.3);}.transition-video-player,.motion-video-min{float:right;width:600px;padding:0 0 70px 20px;}.transition-video-player .preview-image-wrapper,.motion-video-min .preview-image-wrapper{padding:0;}.ant-row-rtl .transition-video-player,.ant-row-rtl .motion-video-min{float:left;}.motion-video-min{width:390px;}.motion-principle-wrapper{width:100%;max-width:900px;margin:48px 0 24px;}.principle-wrapper{width:100%;}.principle-wrapper .principle{display:inline-block;box-sizing:border-box;width:100%;min-height:180px;-webkit-margin-end:12.5%;margin-inline-end:12.5%;margin-bottom:24px;padding:24px;font-size:24px;text-align:center;border:1px solid #e8e8e8;border-radius:4px;}.principle-wrapper .principle:last-child{-webkit-margin-end:0;margin-inline-end:0;}.principle-wrapper .principle h4{margin:16px 0 8px;}.principle-wrapper .principle p{font-size:12px;line-height:24px;}</style><style data-emotion="css-global rfiowl">.design-inline-cards{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0 -20px;}.design-inline-cards>*{-webkit-flex:10%;-ms-flex:10%;flex:10%;margin:0 20px;}.design-inline-cards img{width:100%;max-width:100%;}.design-inline-cards h4{margin-bottom:0;}</style><style data-emotion="css-global 1aeki66">.color-palettes{margin:0 1%;}.color-palettes-dark{margin:0;padding:0 28px;background-color:#141414;}.color-palettes-dark .color-title{color:rgba(255, 255, 255, 0.85);}.color-palettes-dark .color-description{color:rgba(255, 255, 255, 0.45);}.color-palettes-dark .color-palette{margin:45px 3.5% 45px 0;}.color-palettes-dark .color-palette:nth-of-type(3n){-webkit-margin-end:0;margin-inline-end:0;}.color-palettes-dark .color-palette .main-color-item{-webkit-margin-end:0;margin-inline-end:0;}.color-palettes-dark .color-palette .main-color-item:hover{-webkit-margin-end:-8px;margin-inline-end:-8px;}.color-palette{display:inline-block;width:31%;margin:45px 1%;}.color-palette-pick{margin:0 0 20px;font-size:20px;text-align:center;}.color-palette-picker{margin:24px 0;}.color-palette-picker-value{position:relative;top:-3px;-webkit-margin-start:16px;margin-inline-start:16px;font-size:14px;font-family:Consolas,sans-serif;}.ant-row-rtl .color-palette-picker-value{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0;}.color-palette-picker-validation{position:relative;top:-3px;-webkit-margin-start:16px;margin-inline-start:16px;color:#ff4d4f;font-size:14px;}.ant-row-rtl .color-palette-picker-validation{-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0;}.color-palette-picker-validation-dark{-webkit-margin-start:0;margin-inline-start:0;}.main-color{text-align:left;}.main-color .palette-blue-1{background:#e6f4ff;}.main-color .palette-blue-2{background:#bae0ff;}.main-color .palette-blue-3{background:#91caff;}.main-color .palette-blue-4{background:#69b1ff;}.main-color .palette-blue-5{background:#4096ff;}.main-color .palette-blue-6{background:#1677ff;}.main-color .palette-blue-7{background:#0958d9;}.main-color .palette-blue-8{background:#003eb3;}.main-color .palette-blue-9{background:#002c8c;}.main-color .palette-blue-10{background:#001d66;}.main-color .palette-purple-1{background:#f9f0ff;}.main-color .palette-purple-2{background:#efdbff;}.main-color .palette-purple-3{background:#d3adf7;}.main-color .palette-purple-4{background:#b37feb;}.main-color .palette-purple-5{background:#9254de;}.main-color .palette-purple-6{background:#722ed1;}.main-color .palette-purple-7{background:#531dab;}.main-color .palette-purple-8{background:#391085;}.main-color .palette-purple-9{background:#22075e;}.main-color .palette-purple-10{background:#120338;}.main-color .palette-cyan-1{background:#e6fffb;}.main-color .palette-cyan-2{background:#b5f5ec;}.main-color .palette-cyan-3{background:#87e8de;}.main-color .palette-cyan-4{background:#5cdbd3;}.main-color .palette-cyan-5{background:#36cfc9;}.main-color .palette-cyan-6{background:#13c2c2;}.main-color .palette-cyan-7{background:#08979c;}.main-color .palette-cyan-8{background:#006d75;}.main-color .palette-cyan-9{background:#00474f;}.main-color .palette-cyan-10{background:#002329;}.main-color .palette-green-1{background:#f6ffed;}.main-color .palette-green-2{background:#d9f7be;}.main-color .palette-green-3{background:#b7eb8f;}.main-color .palette-green-4{background:#95de64;}.main-color .palette-green-5{background:#73d13d;}.main-color .palette-green-6{background:#52c41a;}.main-color .palette-green-7{background:#389e0d;}.main-color .palette-green-8{background:#237804;}.main-color .palette-green-9{background:#135200;}.main-color .palette-green-10{background:#092b00;}.main-color .palette-magenta-1{background:#fff0f6;}.main-color .palette-magenta-2{background:#ffd6e7;}.main-color .palette-magenta-3{background:#ffadd2;}.main-color .palette-magenta-4{background:#ff85c0;}.main-color .palette-magenta-5{background:#f759ab;}.main-color .palette-magenta-6{background:#eb2f96;}.main-color .palette-magenta-7{background:#c41d7f;}.main-color .palette-magenta-8{background:#9e1068;}.main-color .palette-magenta-9{background:#780650;}.main-color .palette-magenta-10{background:#520339;}.main-color .palette-red-1{background:#fff1f0;}.main-color .palette-red-2{background:#ffccc7;}.main-color .palette-red-3{background:#ffa39e;}.main-color .palette-red-4{background:#ff7875;}.main-color .palette-red-5{background:#ff4d4f;}.main-color .palette-red-6{background:#f5222d;}.main-color .palette-red-7{background:#cf1322;}.main-color .palette-red-8{background:#a8071a;}.main-color .palette-red-9{background:#820014;}.main-color .palette-red-10{background:#5c0011;}.main-color .palette-volcano-1{background:#fff2e8;}.main-color .palette-volcano-2{background:#ffd8bf;}.main-color .palette-volcano-3{background:#ffbb96;}.main-color .palette-volcano-4{background:#ff9c6e;}.main-color .palette-volcano-5{background:#ff7a45;}.main-color .palette-volcano-6{background:#fa541c;}.main-color .palette-volcano-7{background:#d4380d;}.main-color .palette-volcano-8{background:#ad2102;}.main-color .palette-volcano-9{background:#871400;}.main-color .palette-volcano-10{background:#610b00;}.main-color .palette-orange-1{background:#fff7e6;}.main-color .palette-orange-2{background:#ffe7ba;}.main-color .palette-orange-3{background:#ffd591;}.main-color .palette-orange-4{background:#ffc069;}.main-color .palette-orange-5{background:#ffa940;}.main-color .palette-orange-6{background:#fa8c16;}.main-color .palette-orange-7{background:#d46b08;}.main-color .palette-orange-8{background:#ad4e00;}.main-color .palette-orange-9{background:#873800;}.main-color .palette-orange-10{background:#612500;}.main-color .palette-gold-1{background:#fffbe6;}.main-color .palette-gold-2{background:#fff1b8;}.main-color .palette-gold-3{background:#ffe58f;}.main-color .palette-gold-4{background:#ffd666;}.main-color .palette-gold-5{background:#ffc53d;}.main-color .palette-gold-6{background:#faad14;}.main-color .palette-gold-7{background:#d48806;}.main-color .palette-gold-8{background:#ad6800;}.main-color .palette-gold-9{background:#874d00;}.main-color .palette-gold-10{background:#613400;}.main-color .palette-yellow-1{background:#feffe6;}.main-color .palette-yellow-2{background:#ffffb8;}.main-color .palette-yellow-3{background:#fffb8f;}.main-color .palette-yellow-4{background:#fff566;}.main-color .palette-yellow-5{background:#ffec3d;}.main-color .palette-yellow-6{background:#fadb14;}.main-color .palette-yellow-7{background:#d4b106;}.main-color .palette-yellow-8{background:#ad8b00;}.main-color .palette-yellow-9{background:#876800;}.main-color .palette-yellow-10{background:#614700;}.main-color .palette-lime-1{background:#fcffe6;}.main-color .palette-lime-2{background:#f4ffb8;}.main-color .palette-lime-3{background:#eaff8f;}.main-color .palette-lime-4{background:#d3f261;}.main-color .palette-lime-5{background:#bae637;}.main-color .palette-lime-6{background:#a0d911;}.main-color .palette-lime-7{background:#7cb305;}.main-color .palette-lime-8{background:#5b8c00;}.main-color .palette-lime-9{background:#3f6600;}.main-color .palette-lime-10{background:#254000;}.main-color .palette-geekblue-1{background:#f0f5ff;}.main-color .palette-geekblue-2{background:#d6e4ff;}.main-color .palette-geekblue-3{background:#adc6ff;}.main-color .palette-geekblue-4{background:#85a5ff;}.main-color .palette-geekblue-5{background:#597ef7;}.main-color .palette-geekblue-6{background:#2f54eb;}.main-color .palette-geekblue-7{background:#1d39c4;}.main-color .palette-geekblue-8{background:#10239e;}.main-color .palette-geekblue-9{background:#061178;}.main-color .palette-geekblue-10{background:#030852;}.main-color .palette-gray-1{background:#fff;}.main-color .palette-gray-2{background:#fafafa;}.main-color .palette-gray-3{background:#f5f5f5;}.main-color .palette-gray-4{background:#f0f0f0;}.main-color .palette-gray-5{background:#d9d9d9;}.main-color .palette-gray-6{background:#bfbfbf;}.main-color .palette-gray-7{background:#8c8c8c;}.main-color .palette-gray-8{background:#595959;}.main-color .palette-gray-9{background:#434343;}.main-color .palette-gray-10{background:#262626;}.main-color .palette-gray-11{background:#1f1f1f;}.main-color .palette-gray-12{background:#141414;}.main-color .palette-gray-13{background:#000;}.main-color-item{position:relative;height:44px;-webkit-margin-end:4px;margin-inline-end:4px;padding:0 12px;font-size:14px;font-family:Consolas,sans-serif;line-height:44px;cursor:pointer;-webkit-transition:all 0.2s;transition:all 0.2s;}.main-color-item:first-child{border-radius:4px 4px 0 0;}.main-color-item:last-child{border-radius:0 0 4px 4px;}.main-color-item:hover{-webkit-margin-end:-8px;margin-inline-end:-8px;border-radius:0 4px 4px 0;}.main-color-item .main-color-text{float:left;-webkit-transition:all 0.3s;transition:all 0.3s;}.main-color-item .main-color-value{position:relative;inset-inline-start:4px;float:right;-webkit-transform:scale(0.85);-moz-transform:scale(0.85);-ms-transform:scale(0.85);transform:scale(0.85);transform-origin:100% 50%;opacity:0;-webkit-transition:all 0.3s;transition:all 0.3s;}.color-title{margin:0 0 24px;color:#5c6b77;font-weight:500;font-size:22px;text-align:center;text-transform:capitalize;}.color-description{display:block;color:#777;font-weight:lighter;font-size:14px;}.main-color:hover .main-color-value{inset-inline-start:0;opacity:0.7;}.color-palette-horizontal{box-sizing:border-box;width:100%;}.color-palette-horizontal-dark{height:303px;padding:32px 28px;background-color:#141414;}.color-palette-horizontal-dark .color-palette-picker{margin-bottom:0;}.color-palette-horizontal-dark .color-palette-pick{color:rgba(255, 255, 255, 0.65);text-align:left;}.color-palette-horizontal-dark .color-palette-pick-hex{color:rgba(255, 255, 255, 0.65);}.ant-row-rtl .color-palette-horizontal-dark .color-palette-pick{direction:rtl;text-align:right;}.color-palette-horizontal .main-color{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.color-palette-horizontal .main-color-item{position:relative;-webkit-flex:1;-ms-flex:1;flex:1;box-sizing:border-box;height:86px;-webkit-margin-end:0;margin-inline-end:0;padding:37px 0 0;line-height:normal;text-align:center;border-radius:0;}.color-palette-horizontal .main-color-item .main-color-text{float:none;}.color-palette-horizontal .main-color-item:hover{height:96px;margin-top:-10px;border-radius:4px 4px 0 0;}.color-palette-horizontal .main-color-value{position:absolute;bottom:0;inset-inline-start:0;width:100%;text-align:center;transform-origin:unset;}.color-palette-horizontal .main-color:hover .main-color-item{padding-top:8px;}.color-palette-horizontal .main-color:hover .main-color-value{bottom:8px;opacity:0.7;}</style><style data-emotion="css-global 1069y3">h1 >a[aria-hidden]:first-child,h2 >a[aria-hidden]:first-child,h3 >a[aria-hidden]:first-child,h4 >a[aria-hidden]:first-child,h5 >a[aria-hidden]:first-child,h6 >a[aria-hidden]:first-child{float:left;width:20px;-webkit-padding-end:4px;padding-inline-end:4px;font-size:0;line-height:inherit;text-align:right;-webkit-padding-end:4px;padding-inline-end:4px;-webkit-margin-start:-24px;margin-inline-start:-24px;}[data-direction='rtl'] h1 >a[aria-hidden]:first-child,[data-direction='rtl'] h2 >a[aria-hidden]:first-child,[data-direction='rtl'] h3 >a[aria-hidden]:first-child,[data-direction='rtl'] h4 >a[aria-hidden]:first-child,[data-direction='rtl'] h5 >a[aria-hidden]:first-child,[data-direction='rtl'] h6 >a[aria-hidden]:first-child{float:right;}h1 >a[aria-hidden]:first-child:hover,h2 >a[aria-hidden]:first-child:hover,h3 >a[aria-hidden]:first-child:hover,h4 >a[aria-hidden]:first-child:hover,h5 >a[aria-hidden]:first-child:hover,h6 >a[aria-hidden]:first-child:hover{border:0;}h1 >a[aria-hidden]:first-child >.icon-link::before,h2 >a[aria-hidden]:first-child >.icon-link::before,h3 >a[aria-hidden]:first-child >.icon-link::before,h4 >a[aria-hidden]:first-child >.icon-link::before,h5 >a[aria-hidden]:first-child >.icon-link::before,h6 >a[aria-hidden]:first-child >.icon-link::before{font-size:20px;content:'#';color:rgba(0,0,0,0.65);font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,Courier,monospace;}h1:not(:hover)>a[aria-hidden]:first-child>.icon-link,h2:not(:hover)>a[aria-hidden]:first-child>.icon-link,h3:not(:hover)>a[aria-hidden]:first-child>.icon-link,h4:not(:hover)>a[aria-hidden]:first-child>.icon-link,h5:not(:hover)>a[aria-hidden]:first-child>.icon-link,h6:not(:hover)>a[aria-hidden]:first-child>.icon-link{visibility:hidden;}</style><style data-emotion="css-global 19oadjr">html .dumi-default-search-bar-input{color:rgba(0,0,0,0.88);background:#ffffff;}html .dumi-default-search-bar-input:focus{background:#ffffff;}html .dumi-default-search-bar-input::-webkit-input-placeholder{color:rgba(0,0,0,0.25)!important;}html .dumi-default-search-bar-input::-moz-placeholder{color:rgba(0,0,0,0.25)!important;}html .dumi-default-search-bar-input:-ms-input-placeholder{color:rgba(0,0,0,0.25)!important;}html .dumi-default-search-bar-input::placeholder{color:rgba(0,0,0,0.25)!important;}html .dumi-default-search-popover{background-color:#ffffff!important;}html .dumi-default-search-popover::before{border-bottom-color:#ffffff!important;}html .dumi-default-search-result dl dt{background-color:#e6f4ff!important;}html .dumi-default-search-result dl dd a:hover{background-color:rgba(0,0,0,0.04);}html .dumi-default-search-result dl dd a:hover h4,html .dumi-default-search-result dl dd a:hover p{color:rgba(0,0,0,0.88)!important;}html .dumi-default-search-result dl dd a:hover svg{fill:rgba(0,0,0,0.88)!important;}</style><header class="acss-ux81qf clearfix"><div class="ant-row css-var-«R2a»" style="flex-flow:nowrap;height:64px"><div class="ant-col ant-col-xs-24 ant-col-sm-24 ant-col-md-6 ant-col-lg-6 ant-col-xl-5 ant-col-xxl-4 css-var-«R2a»"><h1><a class="acss-1aptykm" href="/index-cn"><img src="https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg" draggable="false" alt="logo"/><span class="acss-wehhhl">Ant Design</span></a></h1></div><div class="ant-col ant-col-xs-0 ant-col-sm-0 ant-col-md-18 ant-col-lg-18 ant-col-xl-19 ant-col-xxl-20 css-var-«R2a»"><div class="acss-n9h96z"><div class="dumi-default-search-bar"><svg viewBox="64 64 896 896" focusable="false" class="dumi-default-search-bar-svg"><path d="M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"></path></svg><input class="dumi-default-search-bar-input" placeholder="输入关键字搜索..."/><span class="dumi-default-search-shortcut"><!-- --> K</span></div><ul class="ant-menu ant-menu-root ant-menu-horizontal ant-menu-light acss-18966qj css-var-«R2a» ant-menu-css-var" dir="ltr" role="menu" tabindex="0" data-menu-list="true"><li class="ant-menu-item ant-menu-item-only-child" role="menuitem" tabindex="-1" aria-describedby="«R25cdatd5cma»"><span class="ant-menu-title-content"><a href="/docs/spec/introduce-cn">设计</a></span></li><li class="ant-menu-item ant-menu-item-selected ant-menu-item-only-child" role="menuitem" tabindex="-1" aria-describedby="«R29cdatd5cma»"><span class="ant-menu-title-content"><a href="/docs/react/introduce-cn">研发</a></span></li><li class="ant-menu-item ant-menu-item-only-child" role="menuitem" tabindex="-1" aria-describedby="«R2dcdatd5cma»"><span class="ant-menu-title-content"><a href="/components/overview-cn/">组件</a></span></li><li class="ant-menu-item ant-menu-item-only-child" role="menuitem" tabindex="-1" aria-describedby="«R2hcdatd5cma»"><span class="ant-menu-title-content"><a href="/docs/blog/css-tricks-cn">博客</a></span></li><li class="ant-menu-item ant-menu-item-only-child" role="menuitem" tabindex="-1" aria-describedby="«R2lcdatd5cma»"><span class="ant-menu-title-content"><a href="/docs/resources-cn">资源</a></span></li><li class="ant-menu-item ant-menu-item-only-child" role="menuitem" tabindex="-1" aria-describedby="«R2pcdatd5cma»"><span class="ant-menu-title-content"><a href="https://ant-design.antgroup.com" target="_blank" rel="noreferrer">国内镜像</a></span></li></ul><div style="display:none" aria-hidden="true"></div><div class="ant-select ant-select-sm ant-select-filled acss-1hv6mo1 css-var-«R2a» ant-select-css-var ant-select-single ant-select-show-arrow"><div class="ant-select-selector"><span class="ant-select-selection-wrap"><span class="ant-select-selection-search"><input type="search" autoComplete="off" class="ant-select-selection-search-input" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-owns="undefined_list" aria-autocomplete="list" aria-controls="undefined_list" readOnly="" unselectable="on" style="opacity:0" value=""/></span><span class="ant-select-selection-item" title="5.26.0">5.26.0</span></span></div><span class="ant-select-arrow" style="user-select:none;-webkit-user-select:none" unselectable="on" aria-hidden="true"><span role="img" aria-label="down" class="anticon anticon-down ant-select-suffix"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></span></div><button aria-describedby="«R4tatd5cma»" type="button" class="ant-btn css-var-«R2a» ant-btn-text ant-btn-color-default ant-btn-variant-text acss-1kw62u4"><div class="btn-inner"><div class="acss-llcihc"><span class="acss-uw0c7n acss-17qhpmq"></span><span class="acss-uw0c7n acss-2yv8wd">En</span></div></div></button><button aria-label="RTL Switch Button" aria-describedby="«R55atd5cma»" type="button" class="ant-btn css-var-«R2a» ant-btn-text ant-btn-color-default ant-btn-variant-text acss-1kw62u4"><div class="btn-inner"><span role="img" direction="ltr" class="anticon acss-pw663m"><svg viewBox="0 0 20 20" width="20" height="20" fill="currentColor" style="transform:scaleX(1)"><title>Direction Icon</title><path d="m14.6961816 11.6470802.0841184.0726198 2 2c.2662727.2662727.2904793.682876.0726198.9764816l-.0726198.0841184-2 2c-.2929.2929-.7677.2929-1.0606 0-.2662727-.2662727-.2904793-.682876-.0726198-.9764816l.0726198-.0841184.7196-.7197h-10.6893c-.41421 0-.75-.3358-.75-.75 0-.3796833.28215688-.6934889.64823019-.7431531l.10176981-.0068469h10.6893l-.7196-.7197c-.2929-.2929-.2929-.7677 0-1.0606.2662727-.2662727.682876-.2904793.9764816-.0726198zm-8.1961616-8.6470802c.30667 0 .58246.18671.69635.47146l3.00003 7.50004c.1538.3845-.0333.821-.41784.9749-.38459.1538-.82107-.0333-.9749-.4179l-.81142-2.0285h-2.98445l-.81142 2.0285c-.15383.3846-.59031.5717-.9749.4179-.38458-.1539-.57165-.5904-.41781-.9749l3-7.50004c.1139-.28475.38968-.47146.69636-.47146zm8.1961616 1.14705264.0841184.07261736 2 2c.2662727.26626364.2904793.68293223.0726198.97654222l-.0726198.08411778-2 2c-.2929.29289-.7677.29289-1.0606 0-.2662727-.26626364-.2904793-.68293223-.0726198-.97654222l.0726198-.08411778.7196-.7196675h-3.6893c-.4142 0-.75-.3357925-.75-.7500025 0-.3796925.2821653-.69348832.6482323-.74315087l.1017677-.00684663h3.6893l-.7196-.7196725c-.2929-.29289-.2929-.76777 0-1.06066.2662727-.26626364.682876-.29046942.9764816-.07261736zm-8.1961616 1.62238736-.89223 2.23056h1.78445z"></path></svg></span></div></button><button type="button" class="ant-btn css-var-«R2a» ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-icon-only ant-dropdown-trigger" style="font-size:16px"><span class="ant-btn-icon"><span role="img" class="anticon"><svg width="1em" height="1em" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" class=""><title>Theme icon</title><g fill-rule="evenodd"><g fill-rule="nonzero"><path d="M7.02 3.635l12.518 12.518a1.863 1.863 0 010 2.635l-1.317 1.318a1.863 1.863 0 01-2.635 0L3.068 7.588A2.795 2.795 0 117.02 3.635zm2.09 14.428a.932.932 0 110 1.864.932.932 0 010-1.864zm-.043-9.747L7.75 9.635l9.154 9.153 1.318-1.317-9.154-9.155zM3.52 12.473c.514 0 .931.417.931.931v.932h.932a.932.932 0 110 1.864h-.932v.931a.932.932 0 01-1.863 0l-.001-.931h-.93a.932.932 0 010-1.864h.93v-.932c0-.514.418-.931.933-.931zm15.374-3.727a1.398 1.398 0 110 2.795 1.398 1.398 0 010-2.795zM4.385 4.953a.932.932 0 000 1.317l2.046 2.047L7.75 7 5.703 4.953a.932.932 0 00-1.318 0zM14.701.36a.932.932 0 01.931.932v.931h.932a.932.932 0 010 1.864h-.933l.001.932a.932.932 0 11-1.863 0l-.001-.932h-.93a.932.932 0 110-1.864h.93v-.931a.932.932 0 01.933-.932z"></path></g></g></svg></span></span></button><a href="https://github.com/ant-design/ant-design" target="_blank" rel="noreferrer"><button aria-describedby="«R5latd5cma»" type="button" class="ant-btn css-var-«R2a» ant-btn-text ant-btn-color-default ant-btn-variant-text ant-btn-icon-only" style="font-size:16px"><span class="ant-btn-icon"><span role="img" aria-label="github" class="anticon anticon-github"><svg viewBox="64 64 896 896" focusable="false" data-icon="github" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z"></path></svg></span></span></button></a></div></div></div></header><main class="acss-1eucewp"><div class="ant-col acss-kiw8y ant-col-xs-24 ant-col-sm-24 ant-col-md-6 ant-col-lg-6 ant-col-xl-5 ant-col-xxl-4 css-var-«R2a»"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light acss-1cfnajh css-var-«R2nd5cma» ant-menu-css-var" dir="ltr" role="menu" tabindex="0" data-menu-list="true"><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R12mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/introduce-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>Ant Design of React</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R14mmnd5cma»"><span class="ant-menu-title-content"><a class="acss-yqckmr" href="/changelog-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>更新日志</span></div><span class="ant-tag ant-tag-success ant-tag-borderless acss-64ji1u css-var-«R2nd5cma»">v5.26.0</span></a></span></li><li role="presentation" class="ant-menu-item-group"><div role="presentation" class="ant-menu-item-group-title" title="如何使用">如何使用</div><ul role="group" class="ant-menu-item-group-list"><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R136mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/getting-started-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>快速上手</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R156mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/use-with-vite-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>在 Vite 中使用</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R176mmnd5cma»"><span class="ant-menu-title-content"><a class="acss-yqckmr" href="/docs/react/use-with-next-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>在 Next.js 中使用</span></div><span class="ant-tag ant-tag-processing ant-tag-borderless acss-64ji1u css-var-«R2nd5cma»">Updated</span></a></span></li><li class="ant-menu-item ant-menu-item-selected ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R196mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/use-with-umi-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>在 Umi 中使用</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R1b6mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/use-with-rsbuild-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>在 Rsbuild 中使用</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R1d6mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/use-with-farm-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>在 Farm 中使用</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R1f6mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/use-with-refine-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>使用 Refine</span></div></a></span></li></ul></li><li role="presentation" class="ant-menu-item-group"><div role="presentation" class="ant-menu-item-group-title" title="进阶使用">进阶使用</div><ul role="group" class="ant-menu-item-group-list"><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R238mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/customize-theme-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>定制主题</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R258mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/compatible-style-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>样式兼容</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R278mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/server-side-rendering-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>服务端渲染</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R298mmnd5cma»"><span class="ant-menu-title-content"><a class="acss-yqckmr" href="/docs/react/css-variables-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>使用 CSS 变量</span></div><span class="ant-tag ant-tag-success ant-tag-borderless acss-64ji1u css-var-«R2nd5cma»">New</span></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R2b8mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/use-custom-date-library-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>使用自定义日期库</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R2d8mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/i18n-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>国际化</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R2f8mmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/common-props-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>通用属性</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«R2h8mmnd5cma»"><span class="ant-menu-title-content"><a class="acss-yqckmr" href="/docs/react/v5-for-19-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>React 19 兼容</span></div><span class="ant-tag ant-tag-success ant-tag-borderless acss-64ji1u css-var-«R2nd5cma»">New</span></a></span></li></ul></li><li role="presentation" class="ant-menu-item-group"><div role="presentation" class="ant-menu-item-group-title" title="迁移">迁移</div><ul role="group" class="ant-menu-item-group-list"><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«Rjammnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/migration-v5-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>从 v4 到 v5</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«Rlammnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/migrate-less-variables-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>从 Less 变量到 Design Token</span></div></a></span></li></ul></li><li role="presentation" class="ant-menu-item-group"><div role="presentation" class="ant-menu-item-group-title" title="其他">其他</div><ul role="group" class="ant-menu-item-group-list"><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«Rjcmmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/recommendation-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>社区精选组件</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«Rlcmmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/contributing-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>贡献指南</span></div></a></span></li><li class="ant-menu-item ant-menu-item-only-child" style="padding-left:30px" role="menuitem" tabindex="-1" aria-describedby="«Rncmmnd5cma»"><span class="ant-menu-title-content"><a class="" href="/docs/react/faq-cn"><div class="ant-flex css-var-«R2nd5cma» ant-flex-align-center ant-flex-justify-flex-start ant-flex-gap-small"><span>FAQ</span></div></a></span></li></ul></li></ul><div style="display:none" aria-hidden="true"></div></div><div class="ant-col ant-col-xs-24 ant-col-sm-24 ant-col-md-18 ant-col-lg-18 ant-col-xl-19 ant-col-xxl-20 css-var-«R2a»"><section class="acss-u1svdg"><div class="css-var-«R2a» ant-anchor-css-var ant-anchor-wrapper acss-wj9g90" style="max-height:100vh"><div class="ant-anchor"><span class="ant-anchor-ink"></span><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#初始化项目" title="初始化项目">初始化项目</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#新建路由" title="新建路由">新建路由</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#实现-product-ui-组件" title="实现 Product UI 组件">实现 Product UI 组件</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#准备-mock-数据" title="准备 Mock 数据">准备 Mock 数据</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#完成-products-页" title="完成 products 页">完成 products 页</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#prolayout" title="ProLayout">ProLayout</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#构建应用" title="构建应用">构建应用</a></div><div class="ant-anchor-link"><a class="ant-anchor-link-title" href="#下一步" title="下一步">下一步</a></div></div></div></section><article class="acss-135ywqk"><div class="ant-flex css-var-«R2a» ant-flex-justify-space-between"><h1 class="ant-typography css-var-«R2a»" style="font-size:32px;position:relative"><div class="ant-space ant-space-horizontal ant-space-align-center ant-space-gap-row-small ant-space-gap-col-small css-var-«R2a»"><div class="ant-space-item"><span>在 Umi 中使用</span></div><div class="ant-space-item"><span></span></div><div class="ant-space-item"><a class="acss-lrkwi4" href="https://github.com/ant-design/ant-design/edit/master/docs/react/use-with-umi.zh-CN.md" target="_blank" rel="noopener noreferrer" aria-describedby="«R2fadhavd5cma»"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></a></div></div></h1></div><div style="min-height:calc(100vh - 64px)"><!--$?--><template id="B:3"></template><div></div><!--/$--></div><div style="margin-top:120px"><!--$--><!--$--><div class=""><div class="acss-1au9561">文档贡献者</div><div class="acss-ujvc37" style="display:flex;list-style:none;margin:0;padding:0"><li aria-describedby="«R2navd5cma»"><a href="https://github.com/undefined" target="_blank" rel="noopener noreferrer"><span class="ant-avatar ant-avatar-sm ant-avatar-circle css-var-«R2a» ant-avatar-css-var"><span class="ant-avatar-string" style="opacity:0"></span></span></a></li></div></div><!--/$--><!--/$--></div></article><section class="acss-leg3en"><a class="acss-1ovmcpq acss-1hxtfro" href="/docs/react/use-with-next-cn"><span role="img" aria-label="left" class="anticon anticon-left footer-nav-icon-before"><svg viewBox="64 64 896 896" focusable="false" data-icon="left" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"></path></svg></span>在 Next.js 中使用<span role="img" aria-label="right" class="anticon anticon-right footer-nav-icon-after"><svg viewBox="64 64 896 896" focusable="false" data-icon="right" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"></path></svg></span></a><a class="acss-1ovmcpq acss-kekkxh" href="/docs/react/use-with-rsbuild-cn"><span role="img" aria-label="left" class="anticon anticon-left footer-nav-icon-before"><svg viewBox="64 64 896 896" focusable="false" data-icon="left" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"></path></svg></span>在 Rsbuild 中使用<span role="img" aria-label="right" class="anticon anticon-right footer-nav-icon-after"><svg viewBox="64 64 896 896" focusable="false" data-icon="right" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"></path></svg></span></a></section><footer class="rc-footer acss-1pvxwm0 rc-footer-dark"><section class="rc-footer-container"><section class="rc-footer-columns"><div class="rc-footer-column"><h2>相关资源</h2><div class="rc-footer-item"><a href="https://ant-design-x.antgroup.com" target="_blank" rel="noopener noreferrer">Ant Design X</a></div><div class="rc-footer-item"><a href="https://ant-design-charts.antgroup.com" target="_blank" rel="noopener noreferrer">Ant Design Charts</a></div><div class="rc-footer-item"><a href="https://pro.ant.design" target="_blank" rel="noopener noreferrer">Ant Design Pro</a></div><div class="rc-footer-item"><a href="https://pro-components.antdigital.dev" target="_blank" rel="noopener noreferrer">Pro Components</a></div><div class="rc-footer-item"><a href="https://ant-design-mobile.antgroup.com/zh" target="_blank" rel="noopener noreferrer">Ant Design Mobile</a></div><div class="rc-footer-item"><a href="https://ant-design-mini.antgroup.com/" target="_blank" rel="noopener noreferrer">Ant Design Mini</a></div><div class="rc-footer-item"><a href="https://web3.antdigital.dev" target="_blank" rel="noopener noreferrer">Ant Design Web3</a></div><div class="rc-footer-item"><a href="https://landing.ant.design" target="_blank" rel="noopener noreferrer">Ant Design Landing</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">首页模板集</span></div><div class="rc-footer-item"><a href="https://scaffold.ant.design" target="_blank" rel="noopener noreferrer">Scaffolds</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">脚手架市场</span></div><div class="rc-footer-item"><a href="https://umijs.org" target="_blank" rel="noopener noreferrer">Umi</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">React 应用开发框架</span></div><div class="rc-footer-item"><a href="https://d.umijs.org" target="_blank" rel="noopener noreferrer">dumi</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">组件/文档研发工具</span></div><div class="rc-footer-item"><a href="https://qiankun.umijs.org" target="_blank" rel="noopener noreferrer">qiankun</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">微前端框架</span></div><div class="rc-footer-item"><a href="https://motion.ant.design" target="_blank" rel="noopener noreferrer">Ant Motion</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">设计动效</span></div><div class="rc-footer-item"><a href="https://ant-design.antgroup.com">国内镜像站点 🇨🇳</a></div></div><div class="rc-footer-column"><h2>社区</h2><div class="rc-footer-item"><a href="https://github.com/websemantics/awesome-ant-design" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="ant-design" class="anticon anticon-ant-design"><svg viewBox="64 64 896 896" focusable="false" data-icon="ant-design" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M716.3 313.8c19-18.9 19-49.7 0-68.6l-69.9-69.9.1.1c-18.5-18.5-50.3-50.3-95.3-95.2-21.2-20.7-55.5-20.5-76.5.5L80.9 474.2a53.84 53.84 0 000 76.4L474.6 944a54.14 54.14 0 0076.5 0l165.1-165c19-18.9 19-49.7 0-68.6a48.7 48.7 0 00-68.7 0l-125 125.2c-5.2 5.2-13.3 5.2-18.5 0L189.5 521.4c-5.2-5.2-5.2-13.3 0-18.5l314.4-314.2c.4-.4.9-.7 1.3-1.1 5.2-4.1 12.4-3.7 17.2 1.1l125.2 125.1c19 19 49.8 19 68.7 0zM408.6 514.4a106.3 106.2 0 10212.6 0 106.3 106.2 0 10-212.6 0zm536.2-38.6L821.9 353.5c-19-18.9-49.8-18.9-68.7.1a48.4 48.4 0 000 68.6l83 82.9c5.2 5.2 5.2 13.3 0 18.5l-81.8 81.7a48.4 48.4 0 000 68.6 48.7 48.7 0 0068.7 0l121.8-121.7a53.93 53.93 0 00-.1-76.4z"></path></svg></span></span>Awesome Ant Design</a></div><div class="rc-footer-item"><a href="http://medium.com/ant-design/" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="medium" class="anticon anticon-medium"><svg viewBox="64 64 896 896" focusable="false" data-icon="medium" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M834.7 279.8l61.3-58.9V208H683.7L532.4 586.4 360.3 208H137.7v12.9l71.6 86.6c7 6.4 10.6 15.8 9.7 25.2V673c2.2 12.3-1.7 24.8-10.3 33.7L128 805v12.7h228.6v-12.9l-80.6-98a39.99 39.99 0 01-11.1-33.7V378.7l200.7 439.2h23.3l172.6-439.2v349.9c0 9.2 0 11.1-6 17.2l-62.1 60.3V819h301.2v-12.9l-59.9-58.9c-5.2-4-7.9-10.7-6.8-17.2V297a18.1 18.1 0 016.8-17.2z"></path></svg></span></span>Medium</a></div><div class="rc-footer-item"><a href="http://twitter.com/antdesignui" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="twitter" style="color:#1DA1F2" class="anticon anticon-twitter"><svg viewBox="64 64 896 896" focusable="false" data-icon="twitter" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M928 254.3c-30.6 13.2-63.9 22.7-98.2 26.4a170.1 170.1 0 0075-94 336.64 336.64 0 01-108.2 41.2A170.1 170.1 0 00672 174c-94.5 0-170.5 76.6-170.5 170.6 0 13.2 1.6 26.4 4.2 39.1-141.5-7.4-267.7-75-351.6-178.5a169.32 169.32 0 00-23.2 86.1c0 59.2 30.1 111.4 76 142.1a172 172 0 01-77.1-21.7v2.1c0 82.9 58.6 151.6 136.7 167.4a180.6 180.6 0 01-44.9 5.8c-11.1 0-21.6-1.1-32.2-2.6C211 652 273.9 701.1 348.8 702.7c-58.6 45.9-132 72.9-211.7 72.9-14.3 0-27.5-.5-41.2-2.1C171.5 822 261.2 850 357.8 850 671.4 850 843 590.2 843 364.7c0-7.4 0-14.8-.5-22.2 33.2-24.3 62.3-54.4 85.5-88.2z"></path></svg></span></span>Twitter</a></div><div class="rc-footer-item"><a href="https://yuque.com/ant-design/ant-design" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><img src="https://gw.alipayobjects.com/zos/rmsportal/XuVpGqBFxXplzvLjJBZB.svg" width="16" height="16" alt="yuque logo"/></span>Ant Design 语雀专栏</a></div><div class="rc-footer-item"><a href="https://www.zhihu.com/column/c_1564262000561106944" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="zhihu" style="color:#056de8" class="anticon anticon-zhihu"><svg viewBox="64 64 896 896" focusable="false" data-icon="zhihu" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M564.7 230.1V803h60l25.2 71.4L756.3 803h131.5V230.1H564.7zm247.7 497h-59.9l-75.1 50.4-17.8-50.4h-18V308.3h170.7v418.8zM526.1 486.9H393.3c2.1-44.9 4.3-104.3 6.6-172.9h130.9l-.1-8.1c0-.6-.2-14.7-2.3-29.1-2.1-15-6.6-34.9-21-34.9H287.8c4.4-20.6 15.7-69.7 29.4-93.8l6.4-11.2-12.9-.7c-.8 0-19.6-.9-41.4 10.6-35.7 19-51.7 56.4-58.7 84.4-18.4 73.1-44.6 123.9-55.7 145.6-3.3 6.4-5.3 10.2-6.2 12.8-1.8 4.9-.8 9.8 2.8 13 10.5 9.5 38.2-2.9 38.5-3 .6-.3 1.3-.6 2.2-1 13.9-6.3 55.1-25 69.8-84.5h56.7c.7 32.2 3.1 138.4 2.9 172.9h-141l-2.1 1.5c-23.1 16.9-30.5 63.2-30.8 65.2l-1.4 9.2h167c-12.3 78.3-26.5 113.4-34 127.4-3.7 7-7.3 14-10.7 20.8-21.3 42.2-43.4 85.8-126.3 153.6-3.6 2.8-7 8-4.8 13.7 2.4 6.3 9.3 9.1 24.6 9.1 5.4 0 11.8-.3 19.4-1 49.9-4.4 100.8-18 135.1-87.6 17-35.1 31.7-71.7 43.9-108.9L497 850l5-12c.8-1.9 19-46.3 5.1-95.9l-.5-1.8-108.1-123-22 16.6c6.4-26.1 10.6-49.9 12.5-71.1h158.7v-8c0-40.1-18.5-63.9-19.2-64.9l-2.4-3z"></path></svg></span></span>Ant Design 知乎专栏</a></div><div class="rc-footer-item"><a href="https://www.zhihu.com/column/c_1543658574504751104" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="zhihu" style="color:#056de8" class="anticon anticon-zhihu"><svg viewBox="64 64 896 896" focusable="false" data-icon="zhihu" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M564.7 230.1V803h60l25.2 71.4L756.3 803h131.5V230.1H564.7zm247.7 497h-59.9l-75.1 50.4-17.8-50.4h-18V308.3h170.7v418.8zM526.1 486.9H393.3c2.1-44.9 4.3-104.3 6.6-172.9h130.9l-.1-8.1c0-.6-.2-14.7-2.3-29.1-2.1-15-6.6-34.9-21-34.9H287.8c4.4-20.6 15.7-69.7 29.4-93.8l6.4-11.2-12.9-.7c-.8 0-19.6-.9-41.4 10.6-35.7 19-51.7 56.4-58.7 84.4-18.4 73.1-44.6 123.9-55.7 145.6-3.3 6.4-5.3 10.2-6.2 12.8-1.8 4.9-.8 9.8 2.8 13 10.5 9.5 38.2-2.9 38.5-3 .6-.3 1.3-.6 2.2-1 13.9-6.3 55.1-25 69.8-84.5h56.7c.7 32.2 3.1 138.4 2.9 172.9h-141l-2.1 1.5c-23.1 16.9-30.5 63.2-30.8 65.2l-1.4 9.2h167c-12.3 78.3-26.5 113.4-34 127.4-3.7 7-7.3 14-10.7 20.8-21.3 42.2-43.4 85.8-126.3 153.6-3.6 2.8-7 8-4.8 13.7 2.4 6.3 9.3 9.1 24.6 9.1 5.4 0 11.8-.3 19.4-1 49.9-4.4 100.8-18 135.1-87.6 17-35.1 31.7-71.7 43.9-108.9L497 850l5-12c.8-1.9 19-46.3 5.1-95.9l-.5-1.8-108.1-123-22 16.6c6.4-26.1 10.6-49.9 12.5-71.1h158.7v-8c0-40.1-18.5-63.9-19.2-64.9l-2.4-3z"></path></svg></span></span>体验科技专栏</a></div><div class="rc-footer-item"><a href="https://seeconf.antfin.com/" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><img src="https://gw.alipayobjects.com/zos/rmsportal/mZBWtboYbnMkTBaRIuWQ.png" width="16" height="16" alt="seeconf logo"/></span>SEE Conf</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">蚂蚁体验科技大会</span></div><div class="rc-footer-item"><a href="/docs/resources-cn#加入我们"><span class="rc-footer-item-icon"><span role="img" aria-label="usergroup-add" class="anticon anticon-usergroup-add"><svg viewBox="64 64 896 896" focusable="false" data-icon="usergroup-add" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z"></path></svg></span></span>加入我们</a></div></div><div class="rc-footer-column"><h2>帮助</h2><div class="rc-footer-item"><a href="https://github.com/ant-design/ant-design" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="github" class="anticon anticon-github"><svg viewBox="64 64 896 896" focusable="false" data-icon="github" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z"></path></svg></span></span>GitHub</a></div><div class="rc-footer-item"><a href="/changelog-cn"><span class="rc-footer-item-icon"><span role="img" aria-label="history" class="anticon anticon-history"><svg viewBox="64 64 896 896" focusable="false" data-icon="history" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 003 14.1zm167.7 301.1l-56.7-19.5a8 8 0 00-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 01-112.5 75.9 352.18 352.18 0 01-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 01-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 01171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 01112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 01775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z"></path></svg></span></span>更新日志</a></div><div class="rc-footer-item"><a href="/docs/react/faq-cn"><span class="rc-footer-item-icon"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span></span>常见问题</a></div><div class="rc-footer-item"><a href="https://new-issue.ant.design/" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="bug" class="anticon anticon-bug"><svg viewBox="64 64 896 896" focusable="false" data-icon="bug" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 00-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 00-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z"></path><path d="M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 01-63 63H232a63 63 0 01-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0022.7 49c24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2a281.38 281.38 0 00123.2-149.5A120 120 0 01836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3A202.75 202.75 0 01308 680V412h408v268z"></path></svg></span></span>报告 Bug</a></div><div class="rc-footer-item"><a href="https://github.com/ant-design/ant-design/issues" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="issues-close" class="anticon anticon-issues-close"><svg viewBox="64 64 896 896" focusable="false" data-icon="issues-close" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 688a48 48 0 1096 0 48 48 0 10-96 0zm72-112c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48zm400-188h-59.3c-2.6 0-5 1.2-6.5 3.3L763.7 538.1l-49.9-68.8a7.92 7.92 0 00-6.5-3.3H648c-6.5 0-10.3 7.4-6.5 12.7l109.2 150.7a16.1 16.1 0 0026 0l165.8-228.7c3.8-5.3 0-12.7-6.5-12.7zm-44 306h-64.2c-5.5 0-10.6 2.9-13.6 7.5a352.2 352.2 0 01-49.8 62.2A355.92 355.92 0 01651.1 840a355 355 0 01-138.7 27.9c-48.1 0-94.8-9.4-138.7-27.9a355.92 355.92 0 01-113.3-76.3A353.06 353.06 0 01184 650.5c-18.6-43.8-28-90.5-28-138.5s9.4-94.7 28-138.5c17.9-42.4 43.6-80.5 76.4-113.2 32.8-32.7 70.9-58.4 113.3-76.3a355 355 0 01138.7-27.9c48.1 0 94.8 9.4 138.7 27.9 42.4 17.9 80.5 43.6 113.3 76.3 19 19 35.6 39.8 49.8 62.2 2.9 4.7 8.1 7.5 13.6 7.5H892c6 0 9.8-6.3 7.2-11.6C828.8 178.5 684.7 82 517.7 80 278.9 77.2 80.5 272.5 80 511.2 79.5 750.1 273.3 944 512.4 944c169.2 0 315.6-97 386.7-238.4A8 8 0 00892 694z"></path></svg></span></span>议题</a></div><div class="rc-footer-item"><a href="https://github.com/ant-design/ant-design/discussions" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="message" class="anticon anticon-message"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span></span>讨论区</a></div><div class="rc-footer-item"><a href="http://stackoverflow.com/questions/tagged/antd" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span></span>StackOverflow</a></div><div class="rc-footer-item"><a href="https://segmentfault.com/t/antd" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span></span>SegmentFault</a></div></div><div class="rc-footer-column"><h2><span class="rc-footer-column-icon"><img src="https://gw.alipayobjects.com/zos/rmsportal/nBVXkrFdWHxbZlmMbsaH.svg" width="22" height="22" alt="Ant XTech logo"/></span>更多产品</h2><div class="rc-footer-item"><a href="https://yuque.com" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><img src="https://gw.alipayobjects.com/zos/rmsportal/XuVpGqBFxXplzvLjJBZB.svg" width="16" height="16" alt="yuque logo"/></span>语雀</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">构建你的数字花园</span></div><div class="rc-footer-item"><a href="https://antv.antgroup.com" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><img src="https://gw.alipayobjects.com/zos/antfincdn/nc7Fc0XBg5/8a6844f5-a6ed-4630-9177-4fa5d0b7dd47.png" width="16" height="16" alt="AntV logo"/></span>AntV</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">数据可视化解决方案</span></div><div class="rc-footer-item"><a href="https://eggjs.org" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><img src="https://www.eggjs.org/logo.svg" alt="Egg logo" width="16" height="16"/></span>Egg</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">企业级 Node.js 框架</span></div><div class="rc-footer-item"><a href="https://kitchen.alipay.com" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><img src="https://gw.alipayobjects.com/zos/rmsportal/DMDOlAUhmktLyEODCMBR.ico" width="16" height="16" alt="Kitchen logo"/></span>Kitchen</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">Sketch 工具集</span></div><div class="rc-footer-item"><a href="https://galacean.antgroup.com/" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><img src="https://mdn.alipayobjects.com/huamei_j9rjmc/afts/img/A*3ittT5OEo2gAAAAAAAAAAAAADvGmAQ/original" width="16" height="16" alt="Galacean logo"/></span>Galacean</a><span class="rc-footer-item-separator">-</span><span class="rc-footer-item-description">互动图形解决方案</span></div><div class="rc-footer-item"><a href="https://xtech.antfin.com/" target="_blank" rel="noopener noreferrer"><span class="rc-footer-item-icon"><img src="https://gw.alipayobjects.com/zos/rmsportal/nBVXkrFdWHxbZlmMbsaH.svg" width="16" height="16" alt="xtech logo"/></span>蚂蚁体验科技</a></div><div class="rc-footer-item"><a href="/theme-editor-cn"><span class="rc-footer-item-icon"><span role="img" aria-label="bg-colors" class="anticon anticon-bg-colors"><svg viewBox="64 64 896 896" focusable="false" data-icon="bg-colors" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 00-12.8 0l-48 48a9.11 9.11 0 000 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z"></path></svg></span></span>主题编辑器</a></div></div></section></section><section class="rc-footer-bottom"><div class="rc-footer-bottom-container"><div style="opacity:0.4">Made with <span style="color:#fff"></span> by</div><div>蚂蚁集团和 Ant Design 开源社区</div></div></section></footer></div></main></div><script>$RC("B:2","S:2")</script><link rel="preload" as="image" href="https://img.alicdn.com/imgextra/i2/O1CN01hWo9eO1ji9BZ1YHju_!!6000000004581-2-tps-774-928.png"/><link rel="preload" as="image" href="https://img.alicdn.com/imgextra/i2/O1CN01aNdyVG1bEMV7WEmBv_!!6000000003433-2-tps-712-276.png"/><link rel="preload" as="image" href="https://img.alicdn.com/imgextra/i1/O1CN014Sq3Uq1IceoHSfGrR_!!6000000000914-1-tps-550-411.gif"/><link rel="preload" as="image" href="https://img.alicdn.com/imgextra/i2/O1CN01jLPfng1WljHFhj3mc_!!6000000002829-2-tps-1670-934.png"/><div hidden id="S:3"><!--$--><div class="markdown"><p>在真实项目开发中,除了 Ant Design 这样的 UI 库你可能会还会需要构建工具、路由方案、CSS 方案、数据流方案、请求库和请求方案、国际化方案、权限方案、Icons 方案等等,才能完成一个完整的项目。我们基于业务场景,推出了基于 React 的企业级应用框架 <a href="https://umijs.org/">Umi</a>,推荐你在项目中使用。</p><p>Umi中文发音为「乌米」是可扩展的企业级前端应用框架也是蚂蚁集团的底层前端框架已直接或间接地服务了 10000+ 应用。Umi 以路由为基础,同时支持配置式路由和约定式路由,保证路由的功能完备,并以此进行功能扩展。然后配以生命周期完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求。</p><p>本文会引导你使用 Umi、Ant Design 和 <a href="https://pro.ant.design/">Ant Design Pro</a> 从 0 开始创建一个简单应用。</p><h2 id="初始化项目"><a aria-hidden="true" tabindex="-1" href="#初始化项目"><span class="icon icon-link"></span></a>初始化项目</h2><p>推荐使用 <a href="https://pnpm.io/zh/">pnpm</a> 创建 Umi 脚手架,执行以下命令。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">bash</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-bash"><div class=""><div class=""><span class="token plain">$ </span><span class="token function">mkdir</span><span class="token plain"> myapp </span><span class="token operator">&amp;&amp;</span><span class="token plain"> </span><span class="token builtin class-name">cd</span><span class="token plain"> myapp</span></div></div><div class=""><div class=""><span class="token plain">$ </span><span class="token function">pnpm</span><span class="token plain"> create umi</span></div></div></pre></div><blockquote><p>如果你使用 npm可执行  <code>npm create umi</code>,效果一致;如果你使用 yarn可执行  <code>yarn create umi</code>,效果也一致;如果你使用 bun那说明你是个非常潮的人可执行 <code>bunx create-umi</code>(注意,<code>create</code><code>umi</code> 之间有个 <code>-</code>)。</p></blockquote><p>这里选「Simple App」因为我们要从 “0” 开始。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">bash</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-bash"><div class=""><div class=""><span class="token plain">? Pick Umi App Template - Use arrow-keys. Return to submit.</span></div></div><div class=""><div class=""><span class="token plain"> Simple App</span></div></div><div class=""><div class=""><span class="token plain"> Ant Design Pro</span></div></div><div class=""><div class=""><span class="token plain"> Vue Simple App</span></div></div></pre></div><p>这里建议选「pnpm」pnpm 在速度以及处理幽灵依赖方面都更有优势。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">bash</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-bash"><div class=""><div class=""><span class="token plain">? Pick Npm Client - Use arrow-keys. Return to submit.</span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token function">npm</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> cnpm</span></div></div><div class=""><div class=""><span class="token plain"> tnpm</span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token function">yarn</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token function">pnpm</span></div></div></pre></div><p>这里国内的朋友建议选「taobao」否则选「npm」。选择 npm taobao 源在安装依赖时通常会更快一些。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">bash</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-bash"><div class=""><div class=""><span class="token plain">? Pick Npm Registry - Use arrow-keys. Return to submit.</span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token function">npm</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> taobao</span></div></div></pre></div><p>然后工具会自动安装依赖,并执行 Umi 的初始化脚本。</p><p>在启动项目之前,我们再安装一些本教程会用到的依赖。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">bash</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-bash"><div class=""><div class=""><span class="token plain">$ </span><span class="token function">pnpm</span><span class="token plain"> i @umijs/plugins -D</span></div></div><div class=""><div class=""><span class="token plain">$ </span><span class="token function">pnpm</span><span class="token plain"> i antd axios @ant-design/pro-components -S</span></div></div></pre></div><p>其中 <code>@umijs/plugins</code> 是 Umi 的官方插件集,包含了 valtio、react-query、styled-components、locale、access、qiankun 等大量插件,可让用户通过配置的方式一键开启和使用;<code>antd</code> 就不用介绍了;<code>axios</code> 是请求库;<code>@ant-design/pro-components</code> 是用于生成中后台布局的组件。(这里将运行时依赖和编译时依赖分别保存到 dependencies 和 devDependencies是目前社区推荐的方式</p><p>完成后,执行以下命令启动项目。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">bash</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-bash"><div class=""><div class=""><span class="token plain">$ </span><span class="token function">npm</span><span class="token plain"> run dev</span></div></div><div class=""><div class=""><span class="token plain">umi dev</span></div></div><div class=""><div class=""><span class="token plain">info - Umi v4.0.46</span></div></div><div class=""><div class=""><span class="token plain"> ╔════════════════════════════════════════════════════╗</span></div></div><div class=""><div class=""><span class="token plain"> ║ App listening at: ║</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token operator">&gt;</span><span class="token plain"> Local: http://localhost:8000 ║</span></div></div><div class=""><div class=""><span class="token plain">ready - ║ </span><span class="token operator">&gt;</span><span class="token plain"> Network: http://*********:8000 ║</span></div></div><div class=""><div class=""><span class="token plain"> ║ ║</span></div></div><div class=""><div class=""><span class="token plain"> ║ Now you can </span><span class="token function">open</span><span class="token plain"> browser with the above addresses↑ ║</span></div></div><div class=""><div class=""><span class="token plain"> ╚════════════════════════════════════════════════════╝</span></div></div></pre></div><p>跟着提示点击命令行里的 url会自动打开浏览器。如果顺利你会看到如下界面。</p><p><img src="https://img.alicdn.com/imgextra/i2/O1CN01hWo9eO1ji9BZ1YHju_!!6000000004581-2-tps-774-928.png" alt=""/></p><h2 id="新建路由"><a aria-hidden="true" tabindex="-1" href="#新建路由"><span class="icon icon-link"></span></a>新建路由</h2><p>我们要写个应用来先显示产品列表。首先第一步是创建路由路由可以想象成是组成应用的不同页面。Umi 用户通常不需要关心 Umi 背后的实现但如果你想知道Umi 的路由是基于 react-router@6.3 实现(注:不是最新的 6.46.4 包含的 loader 和 action 功能并不是 Umi 所需要的)。</p><p>我们通过命令即可创建路由。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">bash</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-bash"><div class=""><div class=""><span class="token plain">$ npx umi g page products</span></div></div><div class=""><div class=""><span class="token plain">Write: src/pages/products.tsx</span></div></div><div class=""><div class=""><span class="token plain">Write: src/pages/products.less</span></div></div></pre></div><p>然后修改配置文件 <code>.umirc.ts</code> 加上新增的路由声明。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">diff</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-diff"><div class=""><div class=""><span class="token plain">import { defineConfig } from &quot;umi&quot;;</span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain">export default defineConfig({</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> routes: [</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> { path: &quot;/&quot;, component: &quot;index&quot; },</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> { path: &quot;/docs&quot;, component: &quot;docs&quot; },</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token inserted-sign inserted prefix inserted">+</span><span class="token inserted-sign inserted line"> { path: &quot;/products&quot;, component: &quot;products&quot; },</span></div></div><div class=""><div class=""><span class="token inserted-sign inserted line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> ],</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> npmClient: &quot;pnpm&quot;,</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token plain">});</span></div></div></pre></div><p>由于脚手架默认使用的是配置式路由,顾名思义,就是路由是自己一行行配出来的,虽然繁琐,但灵活性更高,这种方式需要在配置里加上 routes 字段,详见 <a href="https://umijs.org/docs/guides/routes">Umi 文档之路由</a>。此外Umi 还支持约定式路由,意思是文件系统即路由,所以无需配置路由即可生效。</p><p>然后我们编辑下 <code>src/layouts/index.tsx</code> 文件,在全局布局路由里加上到 <code>/products</code> 路径的导航。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">diff</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-diff"><div class=""><div class=""><span class="token deleted-arrow deleted prefix deleted">&lt;</span><span class="token deleted-arrow deleted line">li&gt;</span></div></div><div class=""><div class=""><span class="token deleted-arrow deleted line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> &lt;Link to=&quot;/docs&quot;&gt;Docs&lt;/Link&gt;</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token deleted-arrow deleted prefix deleted">&lt;</span><span class="token deleted-arrow deleted line">/li&gt;</span></div></div><div class=""><div class=""><span class="token deleted-arrow deleted line"></span><span class="token inserted-sign inserted prefix inserted">+</span><span class="token inserted-sign inserted line"> &lt;li&gt;</span></div></div><div class=""><div class=""><span class="token inserted-sign inserted line"></span><span class="token inserted-sign inserted prefix inserted">+</span><span class="token inserted-sign inserted line"> &lt;Link to=&quot;/products&quot;&gt;Products&lt;/Link&gt;</span></div></div><div class=""><div class=""><span class="token inserted-sign inserted line"></span><span class="token inserted-sign inserted prefix inserted">+</span><span class="token inserted-sign inserted line"> &lt;/li&gt;</span></div></div></pre></div><p>打开 <a href="http://localhost:8000/products">http://localhost:8000/products</a> ,如果顺利,你会看到如下页面。</p><p><img src="https://img.alicdn.com/imgextra/i2/O1CN01aNdyVG1bEMV7WEmBv_!!6000000003433-2-tps-712-276.png" alt=""/></p><h2 id="实现-product-ui-组件"><a aria-hidden="true" tabindex="-1" href="#实现-product-ui-组件"><span class="icon icon-link"></span></a>实现 Product UI 组件</h2><p>随着应用的发展,你会需要在多个页面分享 UI 元素(或在一个页面使用多次),在 Umi 里你可以把这部分抽成 component 。我们来编写一个 ProductList 组件,这样就能在不同的地方显示产品列表了。</p><p>新建 <code>src/components/ProductList.tsx</code> 文件,内容如下。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">tsx</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-tsx"><div class=""><div class=""><span class="token keyword">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">React</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;react&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">import</span><span class="token plain"> </span><span class="token imports punctuation">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">Button</span><span class="token imports punctuation">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Popconfirm</span><span class="token imports punctuation">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Table</span><span class="token imports"> </span><span class="token imports punctuation">}</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;antd&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">import</span><span class="token plain"> </span><span class="token keyword">type</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"> </span><span class="token maybe-class-name">TableProps</span><span class="token plain"> </span><span class="token punctuation">}</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;antd&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">interface</span><span class="token plain"> </span><span class="token class-name">DataType</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> id</span><span class="token operator">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> name</span><span class="token operator">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token punctuation">}</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">const</span><span class="token plain"> </span><span class="token maybe-class-name">ProductList</span><span class="token operator">:</span><span class="token plain"> </span><span class="token maybe-class-name">React</span><span class="token punctuation">.</span><span class="token constant">FC</span><span class="token operator">&lt;</span><span class="token punctuation">{</span><span class="token plain"> products</span><span class="token operator">:</span><span class="token plain"> </span><span class="token maybe-class-name">DataType</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span><span class="token plain"> </span><span class="token function-variable function">onDelete</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain">id</span><span class="token operator">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token keyword">void</span><span class="token plain"> </span><span class="token punctuation">}</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> onDelete</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> products</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">const</span><span class="token plain"> columns</span><span class="token operator">:</span><span class="token plain"> </span><span class="token maybe-class-name">TableProps</span><span class="token operator">&lt;</span><span class="token maybe-class-name">DataType</span><span class="token operator">&gt;</span><span class="token punctuation">[</span><span class="token string">&#x27;columns&#x27;</span><span class="token punctuation">]</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation">[</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> title</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;Name&#x27;</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> dataIndex</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;name&#x27;</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> title</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;Actions&#x27;</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token function">render</span><span class="token punctuation">(</span><span class="token plain">text</span><span class="token punctuation">,</span><span class="token plain"> record</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token tag punctuation">&lt;</span><span class="token tag class-name">Popconfirm</span><span class="token tag"> </span><span class="token tag attr-name">title</span><span class="token tag attr-value punctuation attr-equals">=</span><span class="token tag attr-value punctuation">&quot;</span><span class="token tag attr-value">Delete?</span><span class="token tag attr-value punctuation">&quot;</span><span class="token tag"> </span><span class="token tag attr-name">onConfirm</span><span class="token tag script language-javascript script-punctuation punctuation">=</span><span class="token tag script language-javascript punctuation">{</span><span class="token tag script language-javascript punctuation">(</span><span class="token tag script language-javascript punctuation">)</span><span class="token tag script language-javascript"> </span><span class="token tag script language-javascript arrow operator">=&gt;</span><span class="token tag script language-javascript"> </span><span class="token tag script language-javascript function">onDelete</span><span class="token tag script language-javascript punctuation">(</span><span class="token tag script language-javascript">record</span><span class="token tag script language-javascript punctuation">.</span><span class="token tag script language-javascript property-access">id</span><span class="token tag script language-javascript punctuation">)</span><span class="token tag script language-javascript punctuation">}</span><span class="token tag punctuation">&gt;</span><span class="token plain-text"></span></div></div><div class=""><div class=""><span class="token plain-text"> </span><span class="token tag punctuation">&lt;</span><span class="token tag class-name">Button</span><span class="token tag punctuation">&gt;</span><span class="token plain-text">Delete</span><span class="token tag punctuation">&lt;/</span><span class="token tag class-name">Button</span><span class="token tag punctuation">&gt;</span><span class="token plain-text"></span></div></div><div class=""><div class=""><span class="token plain-text"> </span><span class="token tag punctuation">&lt;/</span><span class="token tag class-name">Popconfirm</span><span class="token tag punctuation">&gt;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">]</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> </span><span class="token tag punctuation">&lt;</span><span class="token tag class-name">Table</span><span class="token tag"> </span><span class="token tag attr-name">rowKey</span><span class="token tag attr-value punctuation attr-equals">=</span><span class="token tag attr-value punctuation">&quot;</span><span class="token tag attr-value">id</span><span class="token tag attr-value punctuation">&quot;</span><span class="token tag"> </span><span class="token tag attr-name">dataSource</span><span class="token tag script language-javascript script-punctuation punctuation">=</span><span class="token tag script language-javascript punctuation">{</span><span class="token tag script language-javascript">products</span><span class="token tag script language-javascript punctuation">}</span><span class="token tag"> </span><span class="token tag attr-name">columns</span><span class="token tag script language-javascript script-punctuation punctuation">=</span><span class="token tag script language-javascript punctuation">{</span><span class="token tag script language-javascript">columns</span><span class="token tag script language-javascript punctuation">}</span><span class="token tag"> </span><span class="token tag punctuation">/&gt;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token punctuation">}</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">export</span><span class="token plain"> </span><span class="token keyword">default</span><span class="token plain"> </span><span class="token maybe-class-name">ProductList</span><span class="token punctuation">;</span></div></div></pre></div><h2 id="准备-mock-数据"><a aria-hidden="true" tabindex="-1" href="#准备-mock-数据"><span class="icon icon-link"></span></a>准备 Mock 数据</h2><p>假设我们已经和后端约定好了 API 接口,那现在就可以使用 Mock 数据来在本地模拟出 API 应该返回的数据,这样一来前后端开发就可以同时进行,不会因为后端 API 还在开发而导致前端的工作被阻塞。Umi 提供了开箱即用的 <a href="https://umijs.org/docs/guides/mock">Mock 功能</a>,能够用方便简单的方式来完成 Mock 数据的设置。</p><p>在根目录下新建 <code>mock/products.ts</code> 文件,内容如下。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">ts</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-ts"><div class=""><div class=""><span class="token keyword">import</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"> defineMock </span><span class="token punctuation">}</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;umi&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">type</span><span class="token plain"> </span><span class="token class-name">Product</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> id</span><span class="token operator">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> name</span><span class="token operator">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token punctuation">}</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">let</span><span class="token plain"> products</span><span class="token operator">:</span><span class="token plain"> Product</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation">[</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"> id</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;1&#x27;</span><span class="token punctuation">,</span><span class="token plain"> name</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;Umi&#x27;</span><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"> id</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;2&#x27;</span><span class="token punctuation">,</span><span class="token plain"> name</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;Ant Design&#x27;</span><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"> id</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;3&#x27;</span><span class="token punctuation">,</span><span class="token plain"> name</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;Ant Design Pro&#x27;</span><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"> id</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;4&#x27;</span><span class="token punctuation">,</span><span class="token plain"> name</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;Dva&#x27;</span><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token punctuation">]</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">export</span><span class="token plain"> </span><span class="token keyword">default</span><span class="token plain"> </span><span class="token function">defineMock</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token string-property property">&#x27;GET /api/products&#x27;</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain">_</span><span class="token punctuation">,</span><span class="token plain"> res</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> res</span><span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> status</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;ok&#x27;</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> data</span><span class="token operator">:</span><span class="token plain"> products</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token string-property property">&#x27;DELETE /api/products/:id&#x27;</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain">req</span><span class="token punctuation">,</span><span class="token plain"> res</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> products </span><span class="token operator">=</span><span class="token plain"> products</span><span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token plain">item</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token operator">=&gt;</span><span class="token plain"> item</span><span class="token punctuation">.</span><span class="token plain">id </span><span class="token operator">!==</span><span class="token plain"> req</span><span class="token punctuation">.</span><span class="token plain">params</span><span class="token punctuation">.</span><span class="token plain">id</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> res</span><span class="token punctuation">.</span><span class="token function">send</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token plain"> status</span><span class="token operator">:</span><span class="token plain"> </span><span class="token string">&#x27;ok&#x27;</span><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></div></div></pre></div><p>然后访问 <a href="http://localhost:8000/api/products">http://localhost:8000/api/products</a> ,就能看到接口响应结果了。</p><h2 id="完成-products-页"><a aria-hidden="true" tabindex="-1" href="#完成-products-页"><span class="icon icon-link"></span></a>完成 products 页</h2><p>完成了 UI 组件和 Mock 数据,是时候把他们结合到一起了。这里需要用到请求方案,我们在这里的选择是 react-query如果你想说 @tanstack/react-query没错他们是同一个库@tanstack/react-query 是 react-query 改名后的包)。所以在开始之前,需要修改配置启用一键启用 <a href="https://umijs.org/docs/max/react-query">Umi 的 react-query 插件</a></p><p>先编辑 <code>.umirc.ts</code>,由于有探测到不能热更的配置项变更,配置文件保存后 umi dev 的 server 会自动重启。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">diff</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-diff"><div class=""><div class=""><span class="token plain">import { defineConfig } from &quot;umi&quot;;</span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain">export default defineConfig({</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token inserted-sign inserted prefix inserted">+</span><span class="token inserted-sign inserted line"> plugins: [&#x27;@umijs/plugins/dist/react-query&#x27;],</span></div></div><div class=""><div class=""><span class="token inserted-sign inserted line"></span><span class="token inserted-sign inserted prefix inserted">+</span><span class="token inserted-sign inserted line"> reactQuery: {},</span></div></div><div class=""><div class=""><span class="token inserted-sign inserted line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> routes: [</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> { path: &quot;/&quot;, component: &quot;index&quot; },</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> { path: &quot;/docs&quot;, component: &quot;docs&quot; },</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> { path: &quot;/products&quot;, component: &quot;products&quot; },</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> ],</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> npmClient: &#x27;pnpm&#x27;,</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token plain">});</span></div></div></pre></div><p>再编辑 <code>src/pages/products.tsx</code>,内容如下。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">tsx</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-tsx"><div class=""><div class=""><span class="token keyword">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">React</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;react&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">import</span><span class="token plain"> </span><span class="token imports">axios</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;axios&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">import</span><span class="token plain"> </span><span class="token imports punctuation">{</span><span class="token imports"> useMutation</span><span class="token imports punctuation">,</span><span class="token imports"> useQuery</span><span class="token imports punctuation">,</span><span class="token imports"> useQueryClient </span><span class="token imports punctuation">}</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;umi&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">import</span><span class="token plain"> </span><span class="token imports">styles</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;./products.less&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">import</span><span class="token plain"> </span><span class="token imports maybe-class-name">ProductList</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;@/components/ProductList&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">export</span><span class="token plain"> </span><span class="token keyword">default</span><span class="token plain"> </span><span class="token keyword">function</span><span class="token plain"> </span><span class="token function">Page</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">const</span><span class="token plain"> queryClient </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function">useQueryClient</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">const</span><span class="token plain"> productsQuery </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function">useQuery</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">&#x27;products&#x27;</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token function">queryFn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> axios</span><span class="token punctuation">.</span><span class="token method function property-access">get</span><span class="token punctuation">(</span><span class="token string">&#x27;/api/products&#x27;</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token plain">res</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> res</span><span class="token punctuation">.</span><span class="token property-access">data</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">const</span><span class="token plain"> productsDeleteMutation </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function">useMutation</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token function">mutationFn</span><span class="token punctuation">(</span><span class="token plain">id</span><span class="token operator">:</span><span class="token plain"> </span><span class="token builtin">string</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> axios</span><span class="token punctuation">.</span><span class="token method function property-access">delete</span><span class="token punctuation">(</span><span class="token template-string template-punctuation string">`</span><span class="token template-string string">/api/products/</span><span class="token template-string interpolation interpolation-punctuation punctuation">${</span><span class="token template-string interpolation">id</span><span class="token template-string interpolation interpolation-punctuation punctuation">}</span><span class="token template-string template-punctuation string">`</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token function-variable function">onSettled</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> queryClient</span><span class="token punctuation">.</span><span class="token method function property-access">invalidateQueries</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token plain"> queryKey</span><span class="token operator">:</span><span class="token plain"> </span><span class="token punctuation">[</span><span class="token string">&#x27;products&#x27;</span><span class="token punctuation">]</span><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">if</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain">productsQuery</span><span class="token punctuation">.</span><span class="token property-access">isLoading</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> </span><span class="token keyword">null</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token tag punctuation">&lt;</span><span class="token tag">div</span><span class="token tag punctuation">&gt;</span><span class="token plain-text"></span></div></div><div class=""><div class=""><span class="token plain-text"> </span><span class="token tag punctuation">&lt;</span><span class="token tag">h1</span><span class="token tag"> </span><span class="token tag attr-name">className</span><span class="token tag script language-javascript script-punctuation punctuation">=</span><span class="token tag script language-javascript punctuation">{</span><span class="token tag script language-javascript">styles</span><span class="token tag script language-javascript punctuation">.</span><span class="token tag script language-javascript property-access">title</span><span class="token tag script language-javascript punctuation">}</span><span class="token tag punctuation">&gt;</span><span class="token plain-text">Page products</span><span class="token tag punctuation">&lt;/</span><span class="token tag">h1</span><span class="token tag punctuation">&gt;</span><span class="token plain-text"></span></div></div><div class=""><div class=""><span class="token plain-text"> </span><span class="token tag punctuation">&lt;</span><span class="token tag class-name">ProductList</span><span class="token tag"></span></div></div><div class=""><div class=""><span class="token tag"> </span><span class="token tag attr-name">products</span><span class="token tag script language-javascript script-punctuation punctuation">=</span><span class="token tag script language-javascript punctuation">{</span><span class="token tag script language-javascript">productsQuery</span><span class="token tag script language-javascript punctuation">.</span><span class="token tag script language-javascript property-access">data</span><span class="token tag script language-javascript punctuation">.</span><span class="token tag script language-javascript property-access">data</span><span class="token tag script language-javascript punctuation">}</span><span class="token tag"></span></div></div><div class=""><div class=""><span class="token tag"> </span><span class="token tag attr-name">onDelete</span><span class="token tag script language-javascript script-punctuation punctuation">=</span><span class="token tag script language-javascript punctuation">{</span><span class="token tag script language-javascript punctuation">(</span><span class="token tag script language-javascript">id</span><span class="token tag script language-javascript punctuation">)</span><span class="token tag script language-javascript"> </span><span class="token tag script language-javascript arrow operator">=&gt;</span><span class="token tag script language-javascript"> </span><span class="token tag script language-javascript punctuation">{</span><span class="token tag script language-javascript"></span></div></div><div class=""><div class=""><span class="token tag script language-javascript"> productsDeleteMutation</span><span class="token tag script language-javascript punctuation">.</span><span class="token tag script language-javascript method function property-access">mutate</span><span class="token tag script language-javascript punctuation">(</span><span class="token tag script language-javascript">id</span><span class="token tag script language-javascript punctuation">)</span><span class="token tag script language-javascript punctuation">;</span><span class="token tag script language-javascript"></span></div></div><div class=""><div class=""><span class="token tag script language-javascript"> </span><span class="token tag script language-javascript punctuation">}</span><span class="token tag script language-javascript punctuation">}</span><span class="token tag"></span></div></div><div class=""><div class=""><span class="token tag"> </span><span class="token tag punctuation">/&gt;</span><span class="token plain-text"></span></div></div><div class=""><div class=""><span class="token plain-text"> </span><span class="token tag punctuation">&lt;/</span><span class="token tag">div</span><span class="token tag punctuation">&gt;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token punctuation">}</span></div></div></pre></div><p>这里,我们通过 <code>useQuery()</code> 拉取来自 <code>/api/products</code> 的数据,然后在 <code>onDelete</code> 事件里通过 <code>useMutation()</code> 提交 DELETE 请求到 <code>/api/products/${id}</code> 进行删除操作。关于 react-query 的详细使用,可参考 <a href="https://umijs.org/docs/max/react-query">Umi 插件之 React Query</a><a href="https://tanstack.com/query/">React Query 官网</a></p><p>保存后,你应该会看到如下界面。</p><p><img src="https://img.alicdn.com/imgextra/i1/O1CN014Sq3Uq1IceoHSfGrR_!!6000000000914-1-tps-550-411.gif" alt=""/></p><h2 id="prolayout"><a aria-hidden="true" tabindex="-1" href="#prolayout"><span class="icon icon-link"></span></a>ProLayout</h2><p>一个标准的中后台页面,一般都需要一个布局,这个布局很多时候都是高度雷同的,<a href="https://procomponents.ant.design/components/layout/">ProLayout</a> 封装了常用的菜单、面包屑、页头等功能,提供了一个不依赖的框架且开箱即用的高级布局组件。并且支持  <code>side</code>, <code>mix</code>, <code>top</code>  三种模式,更是内置了菜单选中、菜单生成面包屑、自动设置页面标题的逻辑。</p><p>先修改配置,为每个路由新增 name 字段,用于给 ProLayout 做菜单渲染使用。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">diff</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-diff"><div class=""><div class=""><span class="token plain">import { defineConfig } from &quot;umi&quot;;</span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain">export default defineConfig({</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> routes: [</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted">-</span><span class="token deleted-sign deleted line"> { path: &quot;/&quot;, component: &quot;index&quot; },</span></div></div><div class=""><div class=""><span class="token deleted-sign deleted line"></span><span class="token inserted-sign inserted prefix inserted">+</span><span class="token inserted-sign inserted line"> { path: &quot;/&quot;, component: &quot;index&quot;, name: &quot;home&quot; },</span></div></div><div class=""><div class=""><span class="token inserted-sign inserted line"></span><span class="token deleted-sign deleted prefix deleted">-</span><span class="token deleted-sign deleted line"> { path: &quot;/docs&quot;, component: &quot;docs&quot; },</span></div></div><div class=""><div class=""><span class="token deleted-sign deleted line"></span><span class="token inserted-sign inserted prefix inserted">+</span><span class="token inserted-sign inserted line"> { path: &quot;/docs&quot;, component: &quot;docs&quot;, name: &quot;docs&quot; },</span></div></div><div class=""><div class=""><span class="token inserted-sign inserted line"></span><span class="token deleted-sign deleted prefix deleted">-</span><span class="token deleted-sign deleted line"> { path: &quot;/products&quot;, component: &quot;products&quot; },</span></div></div><div class=""><div class=""><span class="token deleted-sign deleted line"></span><span class="token inserted-sign inserted prefix inserted">+</span><span class="token inserted-sign inserted line"> { path: &quot;/products&quot;, component: &quot;products&quot;, name: &quot;products&quot; },</span></div></div><div class=""><div class=""><span class="token inserted-sign inserted line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> ],</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> plugins: [&quot;@umijs/plugins/dist/react-query&quot;],</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> reactQuery: {},</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> npmClient: &quot;pnpm&quot;,</span></div></div><div class=""><div class=""><span class="token unchanged line"></span><span class="token plain">});</span></div></div></pre></div><p>编辑 <code>src/layouts/index.tsx</code>,内容如下。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">tsx</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-tsx"><div class=""><div class=""><span class="token keyword">import</span><span class="token plain"> </span><span class="token imports punctuation">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">ProLayout</span><span class="token imports"> </span><span class="token imports punctuation">}</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;@ant-design/pro-components&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">import</span><span class="token plain"> </span><span class="token imports punctuation">{</span><span class="token imports"> </span><span class="token imports maybe-class-name">Link</span><span class="token imports punctuation">,</span><span class="token imports"> </span><span class="token imports maybe-class-name">Outlet</span><span class="token imports punctuation">,</span><span class="token imports"> useAppData</span><span class="token imports punctuation">,</span><span class="token imports"> useLocation </span><span class="token imports punctuation">}</span><span class="token plain"> </span><span class="token keyword">from</span><span class="token plain"> </span><span class="token string">&#x27;umi&#x27;</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain">
</span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token keyword">export</span><span class="token plain"> </span><span class="token keyword">default</span><span class="token plain"> </span><span class="token keyword">function</span><span class="token plain"> </span><span class="token function">Layout</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">const</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"> clientRoutes </span><span class="token punctuation">}</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function">useAppData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">const</span><span class="token plain"> </span><span class="token dom variable">location</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token function">useLocation</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token operator">&lt;</span><span class="token maybe-class-name">ProLayout</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> route</span><span class="token operator">=</span><span class="token punctuation">{</span><span class="token plain">clientRoutes</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">}</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token dom variable">location</span><span class="token operator">=</span><span class="token punctuation">{</span><span class="token dom variable">location</span><span class="token punctuation">}</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> title</span><span class="token operator">=</span><span class="token string">&quot;Umi x Ant Design&quot;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> menuItemRender</span><span class="token operator">=</span><span class="token punctuation">{</span><span class="token punctuation">(</span><span class="token plain">menuItemProps</span><span class="token punctuation">,</span><span class="token plain"> defaultDom</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token arrow operator">=&gt;</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">if</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain">menuItemProps</span><span class="token punctuation">.</span><span class="token property-access">isUrl</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"> menuItemProps</span><span class="token punctuation">.</span><span class="token property-access">children</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> defaultDom</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">if</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain">menuItemProps</span><span class="token punctuation">.</span><span class="token property-access">path</span><span class="token plain"> </span><span class="token operator">&amp;&amp;</span><span class="token plain"> </span><span class="token dom variable">location</span><span class="token punctuation">.</span><span class="token property-access">pathname</span><span class="token plain"> </span><span class="token operator">!==</span><span class="token plain"> menuItemProps</span><span class="token punctuation">.</span><span class="token property-access">path</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token tag punctuation">&lt;</span><span class="token tag class-name">Link</span><span class="token tag"> </span><span class="token tag attr-name">to</span><span class="token tag script language-javascript script-punctuation punctuation">=</span><span class="token tag script language-javascript punctuation">{</span><span class="token tag script language-javascript">menuItemProps</span><span class="token tag script language-javascript punctuation">.</span><span class="token tag script language-javascript property-access">path</span><span class="token tag script language-javascript punctuation">}</span><span class="token tag"> </span><span class="token tag attr-name">target</span><span class="token tag script language-javascript script-punctuation punctuation">=</span><span class="token tag script language-javascript punctuation">{</span><span class="token tag script language-javascript">menuItemProps</span><span class="token tag script language-javascript punctuation">.</span><span class="token tag script language-javascript property-access">target</span><span class="token tag script language-javascript punctuation">}</span><span class="token tag punctuation">&gt;</span><span class="token plain-text"></span></div></div><div class=""><div class=""><span class="token plain-text"> </span><span class="token punctuation">{</span><span class="token plain">defaultDom</span><span class="token punctuation">}</span><span class="token plain-text"></span></div></div><div class=""><div class=""><span class="token plain-text"> </span><span class="token tag punctuation">&lt;/</span><span class="token tag class-name">Link</span><span class="token tag punctuation">&gt;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token keyword">return</span><span class="token plain"> defaultDom</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token operator">&gt;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token tag punctuation">&lt;</span><span class="token tag class-name">Outlet</span><span class="token tag"> </span><span class="token tag punctuation">/&gt;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token tag punctuation">&lt;/</span><span class="token tag class-name">ProLayout</span><span class="token tag punctuation">&gt;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span></div></div><div class=""><div class=""><span class="token plain"></span><span class="token punctuation">}</span></div></div></pre></div><p>这里先用 Umi 的 <code>useAppData</code> 拿到全局客户端路由 <code>clientRoutes</code>,这是一份嵌套结构的路由表,我们把 <code>clientRoutes[0]</code> 传给 ProLayout再通过 <code>useLocation()</code> 拿到 location 信息,也传给 ProLayout 来决定哪个菜单应该高亮;同时我们希望点击菜单时做路由跳转,需要定制 ProLayout 的 <code>menuItemRender</code> 方法。</p><p>聪明的你可能已经发现 <code>src/layouts/index.less</code> 已经不再被引用了。为了保持项目文件的整洁,可以选择将其删除。</p><p>此时浏览器会自动刷新,如果顺利,你会看到如下界面。</p><p><img src="https://img.alicdn.com/imgextra/i2/O1CN01jLPfng1WljHFhj3mc_!!6000000002829-2-tps-1670-934.png" alt=""/></p><h2 id="构建应用"><a aria-hidden="true" tabindex="-1" href="#构建应用"><span class="icon icon-link"></span></a>构建应用</h2><p>完成开发并且在开发环境验证之后,就需要部署给我们的用户了,执行以下命令。</p><div class="dumi-default-source-code"><span class="dumi-default-source-code-language">bash</span><button type="button" class="dumi-default-source-code-copy"><svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></button><pre class="prism-code language-bash"><div class=""><div class=""><span class="token plain">$ </span><span class="token function">npm</span><span class="token plain"> run build</span></div></div><div class=""><div class=""><span class="token plain">info - Umi v4.0.46</span></div></div><div class=""><div class=""><span class="token plain">✔ Webpack</span></div></div><div class=""><div class=""><span class="token plain"> Compiled successfully </span><span class="token keyword">in</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain">.31s</span></div></div><div class=""><div class=""><span class="token plain">info - File sizes after gzip:</span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token number">122.45</span><span class="token plain"> kB dist/umi.js</span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token number">575</span><span class="token plain"> B dist/src__pages__products.async.js</span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token number">312</span><span class="token plain"> B dist/src__pages__index.async.js</span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token number">291</span><span class="token plain"> B dist/layouts__index.async.js</span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token number">100</span><span class="token plain"> B dist/layouts__index.chunk.css</span></div></div><div class=""><div class=""><span class="token plain"> </span><span class="token number">55</span><span class="token plain"> B dist/src__pages__products.chunk.css</span></div></div><div class=""><div class=""><span class="token plain">event - Build index.html</span></div></div></pre></div><p>构建会打包所有的资源,包含 JavaScript, CSS, Web Fonts, 图片, HTML 等。你可以在  <code>dist/</code>  目录下找到这些文件。</p><h2 id="下一步"><a aria-hidden="true" tabindex="-1" href="#下一步"><span class="icon icon-link"></span></a>下一步</h2><p>我们已经完成了一个简单应用,你可能还有很多疑问,比如:</p><ul><li>如何统一处理出错?</li><li>如何处理更多路由,比如动态路由、嵌套路由、权限路由等?</li><li>如何使用数据流方案?</li><li>如何修改 webpack 配置或切换到 vite 构建模式?</li><li>等等</li></ul><p>你可以:</p><ul><li>访问  <a href="https://umijs.org/">Umi 官网</a></li><li>了解  <a href="https://umijs.org/docs/guides/routes">Umi 的路由</a></li><li>了解比 Umi 集成度更高的  <a href="https://umijs.org/docs/max/introduce">Umi Max</a></li><li>了解开箱即用的中后台脚手架  <a href="https://pro.ant.design/">Ant Design Pro</a></li><li>了解高级布局  <a href="https://procomponents.ant.design/components/layout">ProLayout</a></li><li>了解高级表格  <a href="https://procomponents.ant.design/components/table">ProTable</a></li></ul></div><!--/$--></div><script>$RC("B:3","S:3")</script></body></html>